Composite Programming for Hardware-Specific Compiler Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing black box compilers lack customizability, leading to sub-optimal performance of executable programs due to their inability to handle the diverse hardware platforms and new abstractions in high-level programming languages.
Innovation Solution
A composite programming language with two levels - an object program level and a metaprogram level - allows programmers to customize the compilation process by specifying optimizations directly, using augmented compilers that recognize metaprograms to optimize for specific hardware environments.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If black box compilers are used, then ease of operation is improved, but manufacturing precision deteriorates
Solution Approach 1:
The patent segments the compilation process into distinct phases (parsing, optimization, code generation) that can be independently controlled and customized. Programmers can selectively enable or disable specific optimization passes and compilation strategies for different hardware targets without redesigning the entire compiler.
Solution Approach 2:
The patent introduces dynamic configurability to the compilation process through compiler flags, optimization levels, and target-specific parameters that allow the compilation behavior to adapt to different requirements. The system can dynamically adjust optimization strategies based on the intended hardware platform and performance goals.
2Device complexity
If black box compilers are used, then device complexity is reduced, but adaptability deteriorates
Solution Approach 1:
The patent creates a universal compilation framework that can handle multiple high-level programming languages and target various hardware platforms through a common intermediate representation and configurable optimization pipeline. This multi-functional design allows the same compiler infrastructure to serve diverse purposes.
Solution Approach 2:
The patent adds a configuration dimension to the compilation process, introducing layers of controllability through optimization flags, target architecture specifications, and performance parameters. This additional dimension enables adaptability without increasing the core compiler's structural complexity.
3Ease of operation
If programmers focus on program logic, then ease of operation is improved, but productivity deteriorates
Solution Approach 1:
The patent enables the compilation system to automatically select and apply appropriate optimization strategies based on the program characteristics and target hardware. The compiler performs self-optimization without requiring programmers to manually intervene in the compilation process, thus maintaining programming simplicity while achieving high performance.
Solution Approach 2:
The patent incorporates feedback mechanisms where compilation results and performance metrics are used to automatically adjust optimization parameters for subsequent compilations. The system learns from compilation outcomes and refines its optimization choices, improving productivity without adding complexity to the programming task.
Data Source
AI summary
Systems, methods, and machine-readable media are disclosed for enabling high-performance programming via a composite programming language that gives programmers complete control over the compilation process. The composite programs include two language levels: an object program level (source code), and a metaprogram level that describes how a compiler should be customized in order to optimize the source code for a target hardware environment. When an augmented compiler receives a composite program, it recognizes the metaprogram and implements the one or more parameters specified within the composite program to optimize the compiler for a given target. Once the augmented compiler has been, it proceeds with compiling the source code included in the composite program. The compiled code is then output as machine language and may be executed by one or more computing systems.


