U.S. patents available from 1976 to present.
U.S. patent applications available from 2005 to present.

Method and apparatus for dynamically optimizing an executable computer program using input data

Patent 5966537 Issued on October 12, 1999. Estimated Expiration Date: Icon_subject May 28, 2017. Estimated Expiration Date is calculated based on simple USPTO term provisions. It does not account for terminal disclaimers, term adjustments, failure to pay maintenance fees, or other factors which might affect the term of a patent.

Patent References

Generating storage reference instructions in an optimizing compiler
Patent #: 4656582
Issued on: 04/07/1987
Inventor: Chaitin ,   et al.

System and method for concurrency simulation
Patent #: 5134705
Issued on: 07/28/1992
Inventor: Smith, et al.

Parallelization compile method and system
Patent #: 5151991
Issued on: 09/29/1992
Inventor: Iwasawa, et al.

Method for testing, debugging, and comparing computer programs using concurrent simulation of program paths
Patent #: 5291497
Issued on: 03/01/1994
Inventor: Ulrich, et al.

System for monitoring computer system performance
Patent #: 5539907
Issued on: 07/23/1996
Inventor: Srivastava, et al.

Method and apparatus for generating platform-standard object files containing machine-independent code
Patent #: 5590331
Issued on: 12/31/1996
Inventor: Lewis, et al.

Parallel processing system and method using surrogate instructions
Patent #: 5649135
Issued on: 07/15/1997
Inventor: Pechanek, et al.

Computer software testing method and apparatus
Patent #: 5758061
Issued on: 05/26/1998
Inventor: Plum

Method and apparatus for code translation optimization
Patent #: 5805895
Issued on: 09/08/1998
Inventor: Breternitz, Jr., et al.

System for controlling functions of a target application using controllable objects
Patent #: 5815712
Issued on: 09/29/1998
Inventor: Bristor, et al.

More ...

Inventor

Application

No. 864655 filed on 05/28/1997

US Classes:

717/158Including instrumentation and profiling

Examiners

Primary: Hafiz, Tariq R.
Assistant: Khatri, Anil

Attorney, Agent or Firm

International Class

G06F 009/45

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.

Other References

  • 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, 199
PatentsPlus Images
Enhanced PDF formats
loading...
PatentsPlus: add to cart
PatentsPlus: add to cartSearch-enhanced full patent PDF image
$9.95more info
PatentsPlus: add to cart
PatentsPlus: add to cartIntelligent turbocharged patent PDFs with marked up images
$16.95more info
 
Sign InRegister
Username  
Password   
forgot password?