Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
258 words
A computer implemented method of reducing the execution time of a computer program which includes at least one instruction loop having a first conditional branch instruction internal to the loop which has a condition part and a branch part including a target address, wherein the condition part is invariant with respect to the instruction loop, said computer implemented method comprising the steps of: a) identifying said first conditional branch instruction; b) copying said first conditional branch instruction to a location in the computer program immediately before the instruction loop to create a second copy of the conditional branch instruction; c) copying the instruction loop to create a copy of the instruction loop, including a third copy of the conditional branch instruction, and inserting the copy of the instruction loop in a location in the computer program after the instruction loop, wherein said location is identified by a starting address; d) modifying the branch part of the second copy of the conditional branch instruction to branch to the copy of the instruction loop; e) inserting an unconditional branch instruction, to branch around the copy of the instruction loop, at a location in the computer program before the copy of the instruction loop; and f) deleting the first conditional branch instruction; and g) changing the third conditional branch instruction to an unconditional branch instruction, wherein said unconditional branch instruction includes a further target address and said further target address is said target address modified relative to said starting address such that the execution time of the computer program is reduced.
Claim 2
Dependent Claim
258 words
A computer implemented method of reducing the execution time of a computer program which includes at least one instruction loop having a first conditional branch instruction internal to the loop which has a condition part and a branch part including a target address, wherein the condition part is invariant with respect to the instruction loop, said computer implemented method comprising the steps of: a) identifying said first conditional branch instruction; b) copying said first conditional branch instruction to a location in the computer program immediately before the instruction loop to create a second copy of the conditional branch instruction; c) copying the instruction loop to create a copy of the instruction loop, including a third copy of the conditional branch instruction, and inserting the copy of the instruction loop in a location in the computer program after the instruction loop, wherein said location is identified by a starting address; d) modifying the branch part of the second copy of the conditional branch instruction to branch to the copy of the instruction loop; e) inserting an unconditional branch instruction, to branch around the copy of the instruction loop, at a location in the computer program before the copy of the instruction loop; and f) deleting the first conditional branch instruction; and g) changing the third conditional branch instruction to an unconditional branch instruction, wherein said unconditional branch instruction includes a further target address and said further target address is said target address modified relative to said starting address such that the execution time of the computer program is reduced.
Claim 3
Dependent Claim
30 words
The method of claim 1, wherein the step a) is preceded by the step of removing computations, which are invariant with respect to the instruction loop, from the instruction loop.
Claim 4
Dependent Claim
56 words
The method of claim 1, wherein said instruction loop is nested within one or more outer loops and the step b) includes the step of copying the first conditional branch instruction to a location in the computer program immediately preceding an outmost loop for which the condition part of the first conditional branch instruction is invariant.
Claim 5
Dependent Claim
33 words
The method of claim 1, wherein steps a) through f) are repeated for each conditional branch in the instruction loop having a condition part which is invariant with respect to the instruction loop.
Claim 6
Dependent Claim
60 words
The method of claim 1, wherein a computer program consists of a plurality of instruction loops and step a) includes the steps of: a1) selecting one of said instruction loops for the identification of said first conditional branch instruction; and b1) evaluating a further instruction loop if said first conditional branch instruction is not identified in the selected instruction loop.
Claim 7
Dependent Claim
18 words
The method of claim 1, further comprising the step of: h) deleting unnecessary sections of the computer program.
Claim 8
Dependent Claim
42 words
The method of claim 1, wherein the step a) includes the step of: a1) representing the computer program as a flowgraph; and a2) evaluating the flowgraph to identify said first conditional branch instruction as being invariant with respect to the instruction loop.
Claim 9
Dependent Claim
42 words
The method of claim 7, wherein the step a1) further includes the steps of: a3) identifying region constants for the instruction loop; and a4) identifying said first conditional branch instruction as being controlled by at least one of the identified region constants.
Claim 10
Dependent Claim
31 words
The method of claim 7, wherein said first conditional branch instruction is identified only if it is represented by a flow graph as an articulation node of a strongly connected region.
Claim 11
Dependent Claim
266 words
A computer implemented method of reducing the execution time of a computer program which includes at least one instruction loop having a first conditional branch instruction which has a condition part and a branch part including a target address, wherein the condition part is invariant with respect to the instruction loop, said computer implemented method comprising the steps of: a) locating the instruction loop in the computer program b) identifying said first conditional branch instruction in the instruction loop; c) copying said first conditional branch instruction to a location in the computer program immediately before the instruction loop to create a second copy of the conditional branch instruction; d) copying the instruction loop to create a copy of the instruction loop, including a third copy of the conditional branch instruction, and inserting the copy of the instruction loop in a location in the computer program after the instruction loop, wherein said location is identified by a starting address; e) modifying the branch part of the second copy of the conditional branch instruction to branch to the copy of the instruction loop; f) inserting an unconditional branch instruction, to branch around the copy of the instruction loop, at a location in the computer program before the copy of the instruction loop; g) deleting the first conditional branch instruction; and h) changing the third conditional branch instruction to an unconditional branch instruction, wherein said unconditional branch instruction includes a further target address and said further target address is said target address modified relative to said starting address such that the execution time of the computer program is reduced.
Claim 12
Dependent Claim
266 words
A computer implemented method of reducing the execution time of a computer program which includes at least one instruction loop having a first conditional branch instruction which has a condition part and a branch part including a target address, wherein the condition part is invariant with respect to the instruction loop, said computer implemented method comprising the steps of: a) locating the instruction loop in the computer program b) identifying said first conditional branch instruction in the instruction loop; c) copying said first conditional branch instruction to a location in the computer program immediately before the instruction loop to create a second copy of the conditional branch instruction; d) copying the instruction loop to create a copy of the instruction loop, including a third copy of the conditional branch instruction, and inserting the copy of the instruction loop in a location in the computer program after the instruction loop, wherein said location is identified by a starting address; e) modifying the branch part of the second copy of the conditional branch instruction to branch to the copy of the instruction loop; f) inserting an unconditional branch instruction, to branch around the copy of the instruction loop, at a location in the computer program before the copy of the instruction loop; g) deleting the first conditional branch instruction; and h) changing the third conditional branch instruction to an unconditional branch instruction, wherein said unconditional branch instruction includes a further target address and said further target address is said target address modified relative to said starting address such that the execution time of the computer program is reduced.