Method for software pipelining of irregular conditional control loops
First Claim
1. A method of pipelining program loops having irregular loop control comprises the steps of:
- determining which instructions in loop code in a memory may be speculatively executed, storing in a computer memory a set of registers that are modified by an instruction and are alive out of the loop, and modifying the program code so that the values of those registers are saved to a temporary register during all proper iterations, and copying back to the register the value of the temporary register once the loop is completed.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for software pipelining of irregular conditional control loops including pre-processing the loops so they can be safely software pipelined. The pre-processing step ensures that each original instruction in the loop body can be over-executed as many times as necessary. During the pre-processing stage, each instruction in the loop body is processing in turn (N4). If the instruction can be safely speculatively executed, it is left alone (N6). If it could be safely speculatively executed except that it modifies registers that are live out of the loop, then the instruction can be pre-processed using predication or register copying (N7, N8, N9). Otherwise, predication must be applied (N10). Predication is the process of guarding an instruction. When the guard condition is true, the instruction executes as though it were unguarded. When the guard condition is false, the instruction is nullified.
-
Citations
6 Claims
-
1. A method of pipelining program loops having irregular loop control comprises the steps of:
-
determining which instructions in loop code in a memory may be speculatively executed, storing in a computer memory a set of registers that are modified by an instruction and are alive out of the loop, and modifying the program code so that the values of those registers are saved to a temporary register during all proper iterations, and copying back to the register the value of the temporary register once the loop is completed. - View Dependent Claims (2, 3)
-
-
4. A method for software pipelining of irregular conditional control loops includes pre-processing the loops so they can be safely software pipelined, comprising the steps of:
-
pre-processing each instruction in the loop in turn;
if the instruction can be safely speculatively executed, leaving the instruction alone;
if it could be safely speculatively executed except that it modifies registers that are live out of the loop, pre-processing the instruction using predication or register copying. - View Dependent Claims (5, 6)
-
Specification