Domain-Specific Interpreter Inlining for Faster Compiled Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing compiler technologies fail to optimally select code blocks for inlining due to a lack of domain-specific knowledge about the interpreter's execution paths, leading to suboptimal performance in user level programs.
Innovation Solution
Repurpose compiler directives within interpreter source code to make informed decisions on which code blocks to inline during host compilation, leveraging domain-specific knowledge to improve inlining decisions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If compiler directives are not used during host compilation of interpreter source code, then the compilation process is simpler and faster, but the inlining decisions are suboptimal leading to slower user level program execution
Solution Approach 1:
Compiler directives originally designed for guest compilation are repurposed to serve dual purposes: guiding both guest compilation and host compilation inlining decisions. This allows the same directives to optimize multiple aspects of the compilation process without requiring separate directive sets, thereby improving execution efficiency while controlling complexity.
Solution Approach 2:
The patent changes the interpretation and application of existing compiler directives from solely guiding guest compilation to also controlling host compilation inlining behavior. By modifying how these directives are processed during host compilation, the system achieves better optimization without adding new directive syntax or structure.
2Speed
If interpreter source code is compiled without domain-specific inlining directives, then the compilation is more straightforward, but the resulting compiled interpreter performs slower due to suboptimal inlining
Solution Approach 1:
Domain-specific inlining directives are embedded within the interpreter source code itself during its development phase. These directives prepare and guide the host compilation process in advance, ensuring that when compilation occurs, the optimizer already has the necessary information to make optimal inlining decisions, thereby achieving high execution speed without requiring complex post-processing or external analysis.
Data Source
AI summary
Domain specific inlining for interpreters includes obtaining an interpreter source code including compiler directives. A host compilation is performed on the interpreter source code to obtain a compiled interpreter. Performing host compilation includes inlining code blocks based on the plurality of compiler directives. The compiled interpreter is outputted.


