The inventive system and method separates the tracking of the loop entry
and exit points and loop optimization information, from the generation of
the instrumentation code at the loop entry and exit points. Thus, the
different phases in the compiler can proceed in an optimal manner with
respect to producing the best optimized code. This invention allows the
correlation of the source code loops to the object code loops, even though
different optimizations are being applied to loops. A loop information
database is used to store a history of optimizations about loops, as well
as loop entry and exit points, instead of using loop data structures that
must be globally maintained. The invention detects the loops in the
program code, and assigns a unique identifier to each detected loop. The
entry and exit points, as well as the identifier are stored in the
database. Any changes to the loops from optimizations are also stored in
the database. This technique enables profilers to collect and report the
profile information about loops to the user in an intelligible manner.
Das erfinderische System und die Methode trennt die Spurhaltung der Schleife Eintragung und Ausgang Punkte und der Schleife Optimierung Informationen, vom Erzeugung des Instrumentenausrüstung Codes an den Schleife Eintragung und Ausgang Punkten. So können die unterschiedlichen Phasen im Compiler in eine optimale Weise in Bezug auf das Produzieren des besten optimierten Codes fortfahren. Diese Erfindung erlaubt die Wechselbeziehung der Quellenprogrammschleifen zu den Objektcodeschleifen, obwohl unterschiedliche Optimierungen an den Schleifen angewendet werden. Eine Schleife Informationen Datenbank wird benutzt, um eine Geschichte von Optimierungen über Schleifen, sowie Schleife Eintragung und Ausgang Punkte zu speichern, anstatt, Schleife Datenstrukturen zu benutzen, die global beibehalten werden müssen. Die Erfindung ermittelt die Schleifen im Programmcode und weist einen einzigartigen Bezeichner jeder ermittelten Schleife zu. Die Eintragung und Ausgang Punkte, sowie der Bezeichner werden in der Datenbank gespeichert. Alle mögliche Änderungen an den Schleifen von den Optimierungen werden auch in der Datenbank gespeichert. Diese Technik ermöglicht Auswerteprogrammen, die Profilinformationen über Schleifen den Benutzer in einer verständlichen Weise zu sammeln und zu berichten.