United States Patent  [ii] Patent Number: 5,327,561
Choi et al.  Date of Patent: Jul. 5,1994
 SYSTEM AND METHOD FOR SOLVING MONOTONE INFORMATION PROPAGATION PROBLEMS
 Inventors: Jong-Deok Choi, Mount Kisco, N.Y.;
Ron K. Cytron, University City, Mo.;
Jeanne Ferrante, Briarcliff, N.Y.
 Assignee: International Business Machines
Corporation, Armonk, N.Y.
 Appl. No.: 763,099
 Filed: Sep. 20,1991
 Int. C1.5 G06F 9/45; G06F 9/44;
 U.S. CI. 395/700; 364/280.4;
364/DIG. 1; 364/973; 364/DIG. 2; 364/232.22  Field of Search 395/650, 700, 800
 References Cited
U.S. PATENT DOCUMENTS
4,656,583 4/1987 Auslander et al 395/700
5,093,916 3/1992 Karp et al 395/700
Cytron et al., Efficiently Computing Static Single Assignment Form and the Control Dependence Graph, ACM Tansactions on Programming Languages and Systems, vol. 13, No. 4, pp. 451-490, (1991). Cytron et al., An Efficient Method of Computing Static
Single Assignment Form, ACM Transations on Programming Languages and Systems, pp. 25-35, (1989). Jeanne Ferrante, The Program Dependence Graph And Its Use In Optimization, Jun. 1984, 1-33.
Primary Examiner—Kevin A. Kriess
Assistant Examiner—Michael T. Richey
Attorney, Agent, or Firm—Sterne, Kessler, Goldstein &
A method and system is provided for constructing sparse evaluation graphs for forward or backward monotone data flow problems. The sparse graph combines information as early as possible, yet directly connects nodes that generate and use information. This allows problems from the large, general class of monotone data flow problems to enjoy the advantages of solutions based on Static Single Assignment (SSA) form.
The present invention includes a compiler configured to transform a source program into optimized executable code. The compiler contains an optimizer which is configured to optimize the source program, in which the source program and optimization program are represented by a data flow framework. The optimizer includes a sparse evaluation graph generator which generates a sparse evaluation graph and an evaluator connected to evaluate the sparse evaluation graph in relation to the data flow framework.
28 Claims, 13 Drawing Sheets