Block translation optimizations for program code conversation
First Claim
Patent Images
1. A method of translation of a plurality of basic blocks of program code comprising:
- decoding a first basic block;
detecting whether the subject starting address of a successor block of said first basic block is statically determinable;
if said successor basic block is statically determinable, calculating the subject starting address of said successor block; and
resuming the decoding process at the subject starting address of said successor block.
1 Assignment
0 Petitions
Accused Products
Abstract
Subject program code is translated to target code in basic block units at run-time in a process wherein translation of basic blocks is interleaved with execution of those translations. A combination of processes designed to enhance the speed and efficiency of run-time translation are applied based on characteristics of particular blocks and include translating a set of contiguous basic blocks prior to execution (“extended basic blocks”) and grouping and ordering of frequently executed basic blocks for translation (“group blocking”).
36 Citations
27 Claims
-
1. A method of translation of a plurality of basic blocks of program code comprising:
-
decoding a first basic block;
detecting whether the subject starting address of a successor block of said first basic block is statically determinable;
if said successor basic block is statically determinable, calculating the subject starting address of said successor block; and
resuming the decoding process at the subject starting address of said successor block. - View Dependent Claims (2, 3, 4, 5, 6, 24)
-
-
7. A method of translating a plurality of basic blocks of program code comprising:
-
applying a selection algorithm to identify a group of previously translated basic blocks for translation as a contiguous whole; and
generating an intermediate representation for each basic block of said group. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27)
-
-
20. A basic block data structure stored on a computer readable medium comprising:
-
a subject address;
a target code pointer;
a set of translation hints;
a set of entry conditions;
a set of exit conditions;
a profiling metric;
predecessor block data;
successor block data; and
an entry register map.
-
Specification