System and method for jump-evaluated trace designation
First Claim
1. A computer system having at least one central processing unit (CPU) and at least one memory unit having stored therein a plurality of original instructions of an executable file, the plurality of original instructions comprising a plurality of target instructions and a plurality of jump instructions, the at least one memory unit also having a set of jump-evaluating-trace-designator instructions for execution by the at least one CPU, the jump-evaluating-trace-designator instructions designating, when so executed, at least one trace in the original instructions, the at least one trace having a start instruction and an end instruction, the set of jump-evaluating-trace-designator instructions comprisinga set of start-end-designator instructions that, when executed by the at least one CPU,(a) designates a target instruction as the start instruction upon at least one start-trace counter corresponding to the target instruction reaching a start-trace threshold, wherein the reaching of the start-trace threshold is determined by control passing to the target instruction, and(b) designates a jump instruction as the end instruction upon at least one jump-type counter corresponding to the jump instruction reaching an end-trace threshold, wherein the reaching of the end-trace threshold is determined by control passing through the jump instruction.
4 Assignments
0 Petitions
Accused Products
Abstract
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.
-
Citations
50 Claims
-
1. A computer system having at least one central processing unit (CPU) and at least one memory unit having stored therein a plurality of original instructions of an executable file, the plurality of original instructions comprising a plurality of target instructions and a plurality of jump instructions, the at least one memory unit also having a set of jump-evaluating-trace-designator instructions for execution by the at least one CPU, the jump-evaluating-trace-designator instructions designating, when so executed, at least one trace in the original instructions, the at least one trace having a start instruction and an end instruction, the set of jump-evaluating-trace-designator instructions comprising
a set of start-end-designator instructions that, when executed by the at least one CPU, (a) designates a target instruction as the start instruction upon at least one start-trace counter corresponding to the target instruction reaching a start-trace threshold, wherein the reaching of the start-trace threshold is determined by control passing to the target instruction, and (b) designates a jump instruction as the end instruction upon at least one jump-type counter corresponding to the jump instruction reaching an end-trace threshold, wherein the reaching of the end-trace threshold is determined by control passing through the jump instruction.
-
23. A computer system having at least one central processing unit (CPU) and at least one memory unit having stored therein a plurality of original instructions of an executable file, the plurality of original instructions comprising a plurality of target instructions and a plurality of jump instructions, and a jump-evaluating trace designator configured to cooperate with the at least one CPU to designate at least one trace having a start instruction and an end instruction, the jump-evaluating trace designator comprising
a start-end designator configured: -
(a) to designate a target instruction as the start instruction upon at least one start-trace counter corresponding to the target instruction reaching a start-trace threshold, wherein the reaching of the start-trace threshold is determined by control passing to the target instruction, and (b) to designate a jump instruction as the end instruction upon at least one jump-type counter corresponding to the jump instruction reaching an end-trace threshold, wherein the reaching of the end-trace threshold is determined by control passing through the jump instruction. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A computer-implemented method for designating from a plurality of original instructions of an executable file at least one trace having a start instruction and an end instruction, the plurality of original instructions comprising a plurality of target instructions and a plurality of jump instructions, the method comprising the steps of:
-
(a) designating a target instruction as the start instruction upon at least one start-trace counter corresponding to the target instruction reaching a start-trace threshold, wherein the reaching of the start-trace threshold is determined by control passing to the target instruction; and (b) designating a jump instruction as the end instruction upon at least one jump-type counter corresponding to the jump instruction reaching an end-trace threshold, wherein the reaching of the end-trace threshold is determined by control passing through the jump instruction. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45)
-
-
46. Storage media that contains software that, when executed on an appropriate computing system having at least one central processing unit (CPU) and at least one memory unit having stored therein a plurality of original instructions of an executable file, the plurality of original instructions comprising a plurality of target instructions and a plurality of jump instructions, performs a method comprising the steps of:
-
(a) designating a target instruction as a start of a trace upon at least one start-trace counter corresponding to the target instruction reaching a start-trace threshold, wherein the reaching of the start-trace threshold is determined by control passing to the target instruction; and (b) designating a jump instruction as an end of the trace upon at least one jump-type counter corresponding to the jump instruction reaching an end-trace threshold, wherein the reaching of the end-trace threshold is determined by control passing through the jump instruction. - View Dependent Claims (47, 48)
-
-
49. A computer program product for use with an appropriate computing system having at least one central processing unit (CPU) and at least one memory unit having stored therein a plurality of original instructions of an executable file, the plurality of original instructions comprising a plurality of target instructions and a plurality of jump instructions, the computer program product comprising:
a computer usable medium having embodied therein computer readable program code method steps, the method steps comprising; (a) designating a target instruction as a start of a trace upon at least one start-trace counter corresponding to the target instruction reaching a start-trace threshold, wherein the reaching of the start-trace threshold is determined by control passing to the target instruction; and (b) designating a jump instruction as an end of the trace upon at least one jump-type counter corresponding to the jump instruction reaching an end-trace threshold, wherein the reaching of the end-trace threshold is determined by control passing through the jump instruction. - View Dependent Claims (50)
Specification