A method for growing a secondary trace out of a cache of translations for a
program during the program's execution in a dynamic translator, comprising
the steps of: maintaining execution counts for translation heads that are
executed from a code cache; when an execution count for one of said
translation heads exceeds a threshold, designated as a hot translation
head, beginning a mode of operation in which, as following code
translations are executed from the code cache after the execution of the
hot translation head, storing in a history buffer information identifying
each of the following code translations in sequence; terminating the
storing of information in the history buffer in relation to the hot
translation head when a termination condition is met; and linking together
the translation head and the sequence of following code translations
identified in the history buffer to form a larger code translation.
Une méthode pour accroître une trace secondaire hors d'une cachette des traductions pour un programme pendant l'exécution du programme dans un traducteur dynamique, comportant les étapes de : l'exécution de maintien compte pour les têtes de traduction qui sont exécutées d'une cachette de code ; quand un compte d'exécution pour une de lesdites têtes de traduction excède un seuil, indiqué comme tête chaude de traduction, commençant un mode de fonctionnement dans lequel, en tant que transcodages suivants sont exécutés de la cachette de code après l'exécution de la tête chaude de traduction, entreposé dans une information d'amortisseur d'histoire identifiant chacun des transcodages suivants dans l'ordre ; terminaison du stock de l'information dans l'amortisseur d'histoire par rapport à la tête chaude de traduction quand un état d'arrêt est réuni ; et l'enchaînement ensemble de la tête de traduction et de l'ordre des transcodages suivants a identifié dans l'amortisseur d'histoire pour former un plus grand transcodage.