摘要:
A modular compilation system that utilizes a fully integrated hierarchical representation as a common intermediate representation to compile source code programs written in one or more procedural programming languages (201, 202) into an executable object code file. The structure of the integrated common intermediate representation supports machine-independent optimizations (203), as well as machine-dependent optimization (205), and also supports source-level debugging (212) of the executable object code file. The integrated hierarchical representation (IHR) is language independent and is shared by all of the components of the software development system, including the compiler (200) and the debugger (212).
摘要:
A method for representing scalar data dependencies for an optimizing compiler wherein a global scalar data dependence graph (20) is created to represent all of the scalar objects in an entire program (10). The scalar data dependencies are represented as three chains: a use-definition chain (ud); a definition-use chain (du) or a definition-definition chain (dd), and is created for the entire program and is maintained during the entire compilation or assembly of the program (10). The method for determining scalar data dependencies for the entire program (10) starts by analyzing the scalar data dependencies within each basic block (12), in a single pass, processes all definitions and uses of all non-array data objects in the basic block (12), including simple variables and complex data objects such as records, unions, pointers and procedure calls in the presence of aliasing. From these objects, information is collected, such as whether the data objects are upwardly or downwardly exposed, pointers, pointer aliases, aggregate objects, array objects, uses, definitions; whether they are calls, indirect uses, or indirect definitions.