Patent
1997-05-28
1999-10-12
Hafiz, Tariq R.
395708, 395707, 395710, G06F 945
Patent
active
059665378
ABSTRACT:
The present invention provides a method and apparatus for using input data to optimize a computer program. Initially, the computer program is divided into one or more logical units of code. Next, a CPU simulator is used to simulate execution of each logical unit using the input data. The output from the simulation is used to generate a first optimization metric value and corresponding state information for each logical unit. In one embodiment, the first optimization metric value and corresponding state information are stored in a first optimization vector. Using well known optimization techniques, the instructions within each logical unit are optimized iteratively until additional optimizations would result in very small incremental performance improvements. A second simulation is performed using the same input data except that this time the optimized logical units are used. This second simulation is used to measure how much the optimizer has improved the code. The output from the second simulation is used to generate a second optimization metric value and corresponding state information. The degree of optimization is determined by determining the difference between the first optimization metric value and the second optimization metric value for the sum of the logical units. If the difference is less than a predetermined threshold value, additional optimization iterations would provide little code improvement and thus the optimization is complete. However, if the difference is greater than or equal to the predetermined threshold value, additional optimizations would likely improve performance. In the latter case, the present invention would repeat the optimization process described above.
REFERENCES:
patent: 4656582 (1987-04-01), Chaitin et al.
patent: 5134705 (1992-07-01), Smith et al.
patent: 5151991 (1992-09-01), Iwasawa et al.
patent: 5291497 (1994-03-01), Ulrich et al.
patent: 5539907 (1996-07-01), Srivastva et al.
patent: 5590331 (1996-12-01), Lewis et al.
patent: 5649135 (1997-07-01), Pechanek et al.
patent: 5758061 (1998-05-01), Plum
patent: 5805895 (1998-09-01), Breternitz, Jr. et al.
patent: 5815712 (1998-09-01), Bristor et al.
patent: 5822511 (1998-10-01), Kashyap et al.
H.A. Rizvi, et al.; "Execution-Driven Simulation of a Superscalar Processor"; IEEE; 1994; pp. 185-194.
Wayne Yamamoto, et al.; "Performance Estimation of Multistreamed, Superscalar Processors"; IEEE; 1994; pp. 195-204.
Chatterjee et al., "Optimal evaluation of array expressions on massively parallel machines", ACM Trans. Prog. Lang. Sys. vo. 17, pp. 123-156, Jan. 1995.
Martin et al., "Exploiting dead value information", IEEE pp. 125-135, 1997.
Dean et al., "Vortex an optimization compiler for object oriented languages", OOPSLA ACM, pp. 83-100, 1996.
Cole, "Optimization of dynamic query evaluation plans", SIGMOG ACM, pp. 150-160, May 1994.
Holzle et al., "Optimizing dynamically dispatched calls with run time feed back", ACM SIGPLAN, pp. 326-336, Jun. 1994.
Agesen et al, "Type feed vs concrete type interface a comaprision of optimization techniques for object oriented languages", OPPSLA ACM, pp. 91-101, 1995.
Hafiz Tariq R.
Khatri Anil
Sun Microsystems Inc.
LandOfFree
Method and apparatus for dynamically optimizing an executable co does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for dynamically optimizing an executable co, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for dynamically optimizing an executable co will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-661051