Patent ReferencesGenerating storage reference instructions in an optimizing compiler System and method for concurrency simulation Parallelization compile method and system Method for testing, debugging, and comparing computer programs using concurrent simulation of program paths System for monitoring computer system performance Method and apparatus for generating platform-standard object files containing machine-independent code Parallel processing system and method using surrogate instructions Computer software testing method and apparatus Method and apparatus for code translation optimization System for controlling functions of a target application using controllable objects InventorApplicationNo. 864655 filed on 05/28/1997US Classes:717/158Including instrumentation and profilingExaminersPrimary: Hafiz, Tariq R.Assistant: Khatri, Anil Attorney, Agent or FirmInternational ClassG06F 009/45AbstractThe 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
| |