Claims Analysis
Total Claims: 21
Claim 1
Independent Claim
124 words
A method of scheduling a sequence of instructions within a program loop, comprising the steps of: a) computing a minimum initiation interval of a program loop having a single control flow entry and at least one control flow exit; b) applying instruction level parallelism transformations on the program loop; c) applying single iteration scheduling on the program loop; d) percolating selected instructions to a prior iteration of the program loop to generate a new instruction order for the program loop; e) repeating steps b)-d) as long as a previous single iteration length of the program loop is greater than or equal to a current single iteration schedule length of the program loop and the current single iteration schedule length exceeds the minimum initiation interval.
Claim 2
Independent Claim
124 words
A method of scheduling a sequence of instructions within a program loop, comprising the steps of: a) computing a minimum initiation interval of a program loop having a single control flow entry and at least one control flow exit; b) applying instruction level parallelism transformations on the program loop; c) applying single iteration scheduling on the program loop; d) percolating selected instructions to a prior iteration of the program loop to generate a new instruction order for the program loop; e) repeating steps b)-d) as long as a previous single iteration length of the program loop is greater than or equal to a current single iteration schedule length of the program loop and the current single iteration schedule length exceeds the minimum initiation interval.
Claim 3
Dependent Claim
23 words
The method of claim 1 further comprising the steps of: f) generating a program loop prologue; and g) generating a program loop epilogue.
Claim 4
Dependent Claim
14 words
The method of claim 1 wherein the instruction level parallelism transformations include constant combining.
Claim 5
Dependent Claim
14 words
The method of claim 1 wherein the instruction level parallelism transformations include operation combining.
Claim 6
Dependent Claim
16 words
The method of claim 1 wherein the instruction level parallelism transformations include software based register renaming.
Claim 7
Dependent Claim
15 words
The method of claim 1 wherein the instruction level parallelism transformations include an LHS/RHS transformation.
Claim 8
Independent Claim
206 words
A method of scheduling a sequence of instructions within a program loop, comprising the steps of: a) computing a minimum initiation interval of a program loop having a single control flow entry and at least one control flow exit; b) saving the program loop as a recorded program loop; c) applying instruction level parallelism transformations on the program loop to produce a revised program loop; d) applying single iteration scheduling on the revised program loop; e) determining a single iteration schedule length, SL, of the revised program loop; f) restoring the recorded program loop as the revised program loop, if a previous length is not greater than SL; g) performing the following steps if the previous length is greater than or equal to SL and SL is greater than the minimum initiation interval: i) equating the previous length to SL; and ii) percolating selected instructions of the revised program loop to a prior iteration of the revised program loop; h) repeating steps b)-g) as long as the previous length is greater than or equal to SL and SL is greater than the minimum initiation interval; i) generating a loop prologue for the revised program loop; and j) generating a loop epilogue for the revised program loop.
Claim 9
Independent Claim
206 words
A method of scheduling a sequence of instructions within a program loop, comprising the steps of: a) computing a minimum initiation interval of a program loop having a single control flow entry and at least one control flow exit; b) saving the program loop as a recorded program loop; c) applying instruction level parallelism transformations on the program loop to produce a revised program loop; d) applying single iteration scheduling on the revised program loop; e) determining a single iteration schedule length, SL, of the revised program loop; f) restoring the recorded program loop as the revised program loop, if a previous length is not greater than SL; g) performing the following steps if the previous length is greater than or equal to SL and SL is greater than the minimum initiation interval: i) equating the previous length to SL; and ii) percolating selected instructions of the revised program loop to a prior iteration of the revised program loop; h) repeating steps b)-g) as long as the previous length is greater than or equal to SL and SL is greater than the minimum initiation interval; i) generating a loop prologue for the revised program loop; and j) generating a loop epilogue for the revised program loop.
Claim 10
Dependent Claim
14 words
The method of claim 7 wherein the instruction level parallelism transformations include constant combining.
Claim 11
Dependent Claim
14 words
The method of claim 7 wherein the instruction level parallelism transformations include operation combining.
Claim 12
Dependent Claim
16 words
The method of claim 7 wherein the instruction level parallelism transformations include software based register renaming.
Claim 13
Dependent Claim
15 words
The method of claim 7 wherein the instruction level parallelism transformations include an LHS/RHS transformation.
Claim 14
Independent Claim
143 words
A method of scheduling instructions in a program loop, comprising the steps of: a) computing a minimum initiation interval of a current loop having a single control flow entry and at least one control flow exit; b) applying instruction level parallelism transformations on the current loop to generate a transformed loop, wherein the current loop becomes a previous loop and the transformed loop becomes the current loop; c) applying single iteration scheduling on the current loop; d) percolating selected instructions of the current loop to a prior iteration of the current loop to generate a new instruction order for the current loop; and e) repeating steps b)-d) as long as a previous loop single iteration schedule length is greater than or equal to a current loop single iteration schedule length and the current loop single iteration schedule length exceeds the minimum iteration interval.
Claim 15
Independent Claim
143 words
A method of scheduling instructions in a program loop, comprising the steps of: a) computing a minimum initiation interval of a current loop having a single control flow entry and at least one control flow exit; b) applying instruction level parallelism transformations on the current loop to generate a transformed loop, wherein the current loop becomes a previous loop and the transformed loop becomes the current loop; c) applying single iteration scheduling on the current loop; d) percolating selected instructions of the current loop to a prior iteration of the current loop to generate a new instruction order for the current loop; and e) repeating steps b)-d) as long as a previous loop single iteration schedule length is greater than or equal to a current loop single iteration schedule length and the current loop single iteration schedule length exceeds the minimum iteration interval.
Claim 16
Dependent Claim
35 words
The method of claim 12 further comprising the step of: f) selecting the previous loop as the current loop, if the current loop single iteration schedule length exceeds the previous loop single iteration schedule length.
Claim 17
Dependent Claim
23 words
The method of claim 13 further comprising the steps of: g) generating a current loop prologue; and h) generating a current loop epilogue.
Claim 18
Dependent Claim
14 words
The method of claim 12 wherein the instruction level parallelism transformations include constant combining.
Claim 19
Dependent Claim
14 words
The method of claim 12 wherein the instruction level parallelism transformations include operation combining.
Claim 20
Dependent Claim
16 words
The method of claim 12 wherein the instruction level parallelism transformations include software based register renaming.
Claim 21
Dependent Claim
15 words
The method of claim 12 wherein the instruction level parallelism transformations include an LHS/RHS transformation.