A run-time optimization strategy uses a trace picker to identify traces of program code in a native code pool, and a translator to translate the traces into a code cache where the traces are executed natively. Static branch prediction hints are encoded in branch instruction in the translated traces. A program module implementing the present invention is initialized with an empty code cache and a pool of instruction in a native code pool. The trace picker analyzes the instructions in the native code pool and identifies traces of instructions that tend to be executed as a group. When a trace is identified, basic blocks lying along the trace path are translated into a code cache, with static branch predictions encoded into the branch instructions of the basic blocks based on branching behavior observed when the trace is identified. Control then passes to the basic blocks in the code cache, and the basic blocks in the code cache are executed natively using the static branch prediction hints encoded into the branch instructions.

Una estrategia de optimización run-time utiliza a recogedor del rastro para identificar rastros del código del programa en una piscina del código nativo, y un traductor para traducir los rastros a un código deposita donde los rastros se ejecutan nativo. Las indirectas estáticas de la predicción del rama se codifican en la instrucción de rama en los rastros traducidos. Un módulo del programa que pone la actual invención en ejecucio'n se inicializa con un escondrijo vacío del código y una piscina de la instrucción en una piscina del código nativo. El recogedor del rastro analiza las instrucciones en la piscina del código nativo e identifica rastros de las instrucciones que tienden para ser ejecutadas como grupo. Cuando se identifica un rastro, los bloques básicos que mienten a lo largo de la trayectoria del rastro se traducen a un escondrijo del código, con las predicciones estáticas del rama codificadas en las instrucciones de rama de los bloques básicos basados en el comportamiento de ramificación observado cuando se identifica el rastro. El control entonces pasa a los bloques básicos en el escondrijo del código, y los bloques básicos en el escondrijo del código se ejecutan nativo usando las indirectas estáticas de la predicción del rama codificadas en las instrucciones de rama.

 
Web www.patentalert.com

< (none)

< Method of treating alopecia

> Mechanism for dynamically adapting the complexity of a microprocessor

> (none)

~ 00005