Anticipatory optimization with composite folding
AssigneeMicrosoft Corporation
InventorTed J. Biggerstaff
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorTed J. Biggerstaff
Estimating the term…
A method and system for anticipatory optimization of computer programs. The system generates code for a program that is specified using programming-language-defined computational constructs and user-defined, domain-specific computational constructs, the computational constructs including high-level operands that are domain-specific composites of low-level computational constructs. The system generates an abstract syntax tree (AST) representation of the program in a loop merging process. The AST has nodes representing the computational constructs of the program and abstract optimization tags for folding of the composites. A composite folding process is applied to the AST according to the optimization tags to generate optimized code for the program. The composite folding process includes identifying an optimization event, identifying each abstract optimization tag applied to the programming-language-defined computational constructs and having a transformation condition identifying the optimization event as a condition for attempting an anticipated optimization in the translation, and attempting execution of each of the anticipated optimization transformations associated with the optimization event.
A method in a computer system for generating code for a high-level program that is specified using programming-language-defined computational constructs and that is to be translated into a low-level computer program using low-level computational constructs, the programming-language-defined computational constructs defining a data flow and including high-level operands that are domain-specific composites of low-level computational constructs and including high-level operators for indicating operations on the high-level operands, the method comprising:
In a computer readable data storage medium having therein a high-level program that is specified using programming-language-defined computational constructs and that is to be translated into a low-level computer program using low-level computational constructs, the programming-language-defined computational constructs including high-level operands that are composites of low-level computational constructs and including high-level operators for indicating operations on the high-level operands, an optimization tag data structure, comprising:
In a computer readable data storage medium software instructions for generating code for a high-level program that is specified using programming-language-defined computational constructs and that is to be translated into a low-level computer program using low-level computational constructs, the programming-language-defined computational constructs defining a data flow and including high-level operands that are domain-specific composites of low-level computational constructs and including high-level operators for indicating operations on the high-level operands, comprising:
A method for generating code for a high-level program that is specified using programming-language-defined computational constructs and that is to be translated into a low-level computer program using low-level computational constructs, the programming-language-defined computational constructs including high-level operands that are domain-specific composites of low-level computational constructs and including high-level operators for indicating operations on the high-level operands, comprising:
A method in a computer system for generating code for a program, the program being specified using programming-language-defined computational constructs and user-defined, domain-specific computational constructs, the computational constructs including high-level operands that are domain-specific composites of low-level computational constructs, the method comprising:
A method for generating code for a high-level program that is specified using programming-language-defined computational constructs and that is to be translated into a low-level computer program using low-level computational constructs, the high-level computational constructs including high-level operands that are domain-specific composites of low-level computational constructs and including high-level operators for indicating operations on the high-level operands, comprising:
A method for generating code for a high-level program that is specified using programming-language-defined computational constructs and that is to be translated into a low-level computer program using low-level computational constructs, the high-level computational constructs including high-level, operands that are domain-specific composites of low-level computational constructs and including high-level operators for indicating operations on the high-level operands, comprising:
A method for generating code for a high-level program that is specified using programming-language-defined computational constructs and that is to be translated into a low-level computer program using low-level computational constructs, the high-level computational constructs including high-level operands that are domain-specific composites of low-level computational constructs and including high-level operators for indicating operations on the high-level operands, comprising:
Dependencies are inferred from the claim text.