AUTOMATIC IDENTIFICATION AND GENERATION OF NON-TEMPORAL STORE AND LOAD OPERATIONS IN A DYNAMIC OPTIMIZATION ENVIRONMENT

Techniques are disclosed to identify a frequently-executed region of code during runtime execution of the code, generate initial profiling code for the frequently-executed region of code, cause the initial profiling code to be executed for a minimum number of processing cycles of the computer, and i...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: SASANKA, Ruchira
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Techniques are disclosed to identify a frequently-executed region of code during runtime execution of the code, generate initial profiling code for the frequently-executed region of code, cause the initial profiling code to be executed for a minimum number of processing cycles of the computer, and identify replacement candidate store instruction(s) that store a value that is not read by the frequently-executed region of code during execution of the initial profiling code. Replacement candidate load instruction(s) may also be identified that load a value that is not stored or loaded by the frequently-executed region of code during execution of the initial profiling code. Optimized code for the frequently-executed region of code may be generated by replacing each of the replacement candidate store or load instructions(s) with a non-temporal store or load instruction. The optimized code may be executed instead of the frequently-executed region of code during subsequent runtime execution. La présente invention concerne des techniques pour identifier une région de code fréquemment exécutée pendant l'exécution d'exécution du code, générer un code de profilage initial pour la région de code fréquemment exécutée, amener le code de profilage initial à être exécuté pour un nombre minimum de cycles de traitement de l'ordinateur, et identifier une ou des instructions de stockage candidates de remplacement qui stockent une valeur qui n'est pas lue par la région de code fréquemment exécutée pendant l'exécution du code de profilage initial. Une ou des instructions de charge candidates de remplacement peuvent également être identifiées qui chargent une valeur qui n'est pas stockée ou chargée par la région de code fréquemment exécutée pendant l'exécution du code de profilage initial. Un code optimisé pour la région de code fréquemment exécutée peut être généré en remplaçant chacune des instructions de stockage ou de charge candidates de remplacement avec une instruction de charge ou de stockage non temporelle. Le code optimisé peut être exécuté au lieu de la région de code fréquemment exécutée pendant une exécution d'exécution ultérieure.