United States Patent p9]  Patent Number: 5,107,418
Cramer et al.  Date of Patent: Apr. 21, 1992
 METHOD FOR REPRESENTING SCALAR DATA DEPENDENCES FOR AN OPTIMIZING COMPILER
 Inventors: Timothy J. Cramer, Pleasanton;
David M. Cox, Livermore, both of
niques and Tools, Addison-Wesley (1986), Chap. 10, pp. 585-722.
Primary Examiner—David Y. Eng
Attorney. Agent, or Firm—Patterson & Keough
 Appl. No.: 571,503
 Filed: Aug. 23,1990
Related U.S. Application Data
 Continuation-in-part ofSer. No. 537,466, Jun. 11, 1990.
 Int. D.5 G06F 9/44
 U.S. a 395/700; 364/280.4;
364/280.5; 364/DIG. 1  Field of Search ... 364/200 MS File, 900 MS File;
 References Cited
U.S. PATENT DOCUMENTS
4,642,764 2/1987 Auslander 364/200
4,710,872 12/1987 Scarborough 364/200
4,782,444 11/1988 Munshi et al 364/200
4,843,545 6/1989 Kikuchi .
4,847,755 7/1989 Morrison et al. .
OTHER PUBLICATIONS Aho, Sethi and Ullman, Compilers: Principles, Tech
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 definitiondefinition 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.
7 Claims, 7 Drawing Sheets