A computer-implemented system and method are provided to designate traces
of original instructions of an executable file at run time based on
evaluations of control flow through jump instructions. Such designation
typically increases the opportunities for dynamic optimization based on
loop unrolling and other modifications of the control-flow structure of
the executable file. The target of a jump instruction is designated as the
start of a trace if the number of times that control has passed to it
through any one or more jump instructions of a predetermined type of jump
instruction reaches a predetermined start-trace threshold. The trace is
ended if the number of times that control has passed through jump
instructions of one of a variety of particular types of jump instructions
reaches an end-trace threshold that is predetermined for each such type of
jump instruction. The invention includes an instruction emulator, a
start-end designator, a trace translator and optimizer, and a backpatch
manager. The instruction emulator emulates original instructions that have
not been translated. The start-end designator designates the start and end
of traces. The trace translator and optimizer translates and optimizes
traces designated by the start-end designator. The backpatch manager
backpatches jump instructions in translated instructions so that they jump
to target instructions that have been translated, when present.
Um sistema e um método computador-executados são fornecidos para designar traços de instruções originais de uma lima executável no tempo funcionado baseado em avaliações do controle correm através de instruções de salto. Tal designação aumenta tipicamente as oportunidades para o optimization dinâmico baseado no laço que unrolling e outras modificações do controle-fluem estrutura da lima executável. O alvo de uma instrução de salto está designado como o começo de um traço se o número das épocas que o controle lhe passou com todo o ou mais instruções de salto de um tipo predeterminado de instrução de salto alcançar predeterminadas inicí-seguir o ponto inicial. O traço está terminado se o número das épocas que o controle passou com as instruções de salto de uma de uma variedade de tipos particulares de instruções de salto alcançar extremidade-seguir o ponto inicial que está predeterminado para cada tal tipo de instrução de salto. A invenção inclui um emulador da instrução, um designador da inicí-extremidade, um tradutor e um optimizer do traço, e um gerente do backpatch. O emulador da instrução emula as instruções originais que não foram traduzidas. O designador da inicí-extremidade designa o começo e a extremidade dos traços. O tradutor e o optimizer do traço traduzem e optimizes os traços designados pelo designador da inicí-extremidade. As instruções de salto dos backpatches do gerente do backpatch em instruções traduzidas de modo que saltem às instruções do alvo que foram traduzidas, quando presente.