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.

Die anwesende Erfindung stellt eine Methode und einen Apparat für das Verwenden von von Eingang Daten, um ein Computerprogramm zu optimieren zur Verfügung. Zuerst wird das Computerprogramm in eine oder mehr logischen Maßeinheiten Code geteilt. Zunächst wird ein CPU Simulator benutzt, um Durchführung jeder logischen Maßeinheit mit den Eingang Daten zu simulieren. Der Ausgang von der Simulation wird benutzt, um einen erste Optimierung metrischen Wert und entsprechende Zustandinformationen für jede logische Maßeinheit zu erzeugen. In einer Verkörperung werden der erste Optimierung metrische Wert und entsprechenden die Zustandinformationen in einem ersten Optimierung Vektor gespeichert. Mit weithin bekannten Optimierung Techniken werden die Anweisungen innerhalb jeder logischen Maßeinheit wiederholend optimiert, bis zusätzliche Optimierungen sehr kleine zusätzliche Leistung Verbesserungen ergeben würden. Eine zweite Simulation wird mit den gleichen Eingang Daten durchgeführt, außer daß dieses mal werden die optimierten logischen Maßeinheiten benutzt. Diese zweite Simulation wird verwendet, um zu messen, wieviel der Optimierer den Code verbessert hat. Der Ausgang von der zweiten Simulation wird benutzt, um einen zweite Optimierung metrischen Wert und entsprechende Zustandinformationen zu erzeugen. Der Grad von Optimierung wird festgestellt, indem man den Unterschied zwischen dem erste Optimierung metrischen Wert und dem zweite Optimierung metrischen Wert für die Summe der logischen Maßeinheiten feststellt. Wenn der Unterschied kleiner als ein vorbestimmter Schwellenwert ist, würden zusätzliche Optimierung Wiederholungen wenig Codeverbesserung liefern und folglich ist die Optimierung komplett. Jedoch wenn der Unterschied grösser als oder Gleichgestelltes zum vorbestimmten Schwellenwert ist, würden zusätzliche Optimierungen wahrscheinlich Leistung verbessern. Im letzten Fall würde die anwesende Erfindung den Optimierung Prozeß wiederholen, der oben beschrieben wurde.

 
Web www.patentalert.com

< (none)

< Technique for indexing information stored as a plurality of records

> Method and apparatus for generating an optimized target executable computer program using an optimized source executable

> (none)

~ 00002