Patent US5107418A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5107418A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for representing scalar data dependences for an optimizing compiler

Assignee: RPX Corp
•
Filing: 1990-08-23
•
Granted: 1992-04-21
•
Expires: 2010-08-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for representing scalar data dependencies for an optimizing compiler wherein a global scalar data dependence graph is created to represent all of the scalar objects in an entire program. 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. The method for determining scalar data dependences for the entire program starts by analyzing the scalar data dependences within each basic block, in a single pass, processes all definitions and uses of all non-array data objects in the basic block, 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.

Inventors

  • 👤 Timothy J. Cramer
  • 👤 David M. Cox

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-27 13:47
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F12/00; G06F12/02; G06F12/0223; G06F12/023; G06F12/08; G06F12/12; G06F8/43; G06F8/433; G06F8/44; G06F8/445; G06F8/45; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3838

Claims Analysis

Total Claims: 8
Claim 1
Independent Claim 157 words
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.
Claim 2
Independent Claim 157 words
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.
Claim 3
Dependent Claim 23 words
The method of claim 1 wherein step (b) is performed in a single pass through the intermediate representation of the source code program.
Claim 4
Dependent Claim 26 words
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.
Claim 5
Dependent Claim 19 words
the method of claim 1 wherein the dependence node is capable of representing calls, simple, equivalenced, and aggregate variables.
Claim 6
Dependent Claim 29 words
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.
Claim 7
Dependent Claim 28 words
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.
Claim 8
Dependent Claim 30 words
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.

References Cited (Backward Citations)

US4642764A Cited
US4710872A Cited
US4847755A Cited
US4782444A Cited
US4843545A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1995-04-21 1995-10-21 1996-04-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1999-04-21 1999-10-21 2000-04-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2003-04-21 2003-10-21 2004-04-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag