Claims
- 1. A method for constructing a global scalar data dependence graph for an optimizing compiler, the scalar data dependence graph representing relationships among scalar variables in one or more basic blocks that comprises an intermediate representation of a source code program to be executed on a computer processing system, the method of constructing the global scalar data dependence graph comprising the steps of:
- (a) performing a prepass on the intermediate representation of the source code program to process symbol information and to process expression information for all of the basic blocks;
- (b) building a local data dependence graph for each basic block, the local data dependence graph including one or more dependence nodes;
- (c) generating a KILL Set for each dependence node for each basic block;
- (d) generating an IN/OUT Set for each dependence node for each basic block; and
- (e) connecting all of the local data dependence graphs together to form a global scalar data dependence graph.
- 2. The method of claim 1 wherein step (b) is performed in a single pass through the intermediate representation of the source code program.
- 3. The method of claim 1 wherein the dependence node is comprised of a data structure defining a definition-use chain, a use-definition chain and a definition-definition chain.
- 4. the method of claim 1 wherein the dependence node is capable of representing calls, simple, equivalenced, and aggregate variables.
- 5. The method of claim 1 wherein steps (b) through (e) further comprise the step of performing graph reduction by using conservative estimates for side effects calls and pointer dereferences.
- 6. The method of claim 1 wherein other information vital to subsequent optimizations is stored in the global scalar data dependence graph, including clear and exposed use bit vectors.
- 7. The method of claim 1 wherein the definition of a KILL Set in step (c); is expanded to include all definitions that are not generated by the current basic block.
RELATED APPLICATION
This application is a continuation-in-part of an application filed in the U.S. Patent and Trademark Office on Jun. 11, 1990, entitled INTEGRATED SOFTWARE ARCHITECTURE FOR A HIGHLY PARALLEL MULTIPROCESSOR SYSTEM, Ser. No. 07/537,466, which is assigned to the assignee of the present invention and which is hereby incorporated by reference in the present application.
US Referenced Citations (5)
Non-Patent Literature Citations (1)
Entry |
Aho, Sethi and Ullman, Compilers: Principles, Techniques and Tools, Addison-Wesley (1986), Chap. 10, pp. 585-722. |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
537466 |
Jun 1990 |
|