Scheduled code for a software‐pipelined loop.
Synopsis
Declared in <llvm/CodeGen/MachinePipeliner.h>
class SMSchedule;
Description
The main data structure is a map from scheduled cycle to instructions. During scheduling, the data structure explicitly represents all stages/iterations. When the algorithm finishes, the schedule is collapsed into a single stage, which represents instructions from different loop iterations.
The SMS algorithm allows negative values for cycles, so the first cycle in the schedule is the smallest cycle value.
Type Aliases
Name |
Description |
Const iterator over the cycle‐to‐instruction map. |
|
Iterators for the cycle to instruction map. |
Member Functions
Name |
Description |
|
Construct a schedule for |
Compute earliest and latest legal start cycles for |
|
Compute nodes that cannot be pipelined for this loop. |
|
Return the cycle for a scheduled instruction. This function normalizes the first cycle to be 0. |
|
Dump the schedule to the debug stream. |
|
Collapse stages into a final kernel schedule and apply instruction fixes. |
|
Return the last cycle in the finalized schedule. |
|
Return the first cycle in the completed schedule. This can be a negative value. |
|
Return the initiation interval for this schedule. |
|
Return the instructions that are scheduled at the specified cycle. |
|
Return the maximum stage count needed for this schedule. |
|
Try to schedule |
|
Return true if PHI |
|
Return true if |
|
Return true if the instruction is scheduled at the specified stage. |
|
Return true if the current schedule satisfies dependence constraints. |
|
Place unpipelineable instructions into a legal single‐iteration region. |
|
Return true if |
|
Insert |
|
Print the schedule to |
|
Reorder |
|
Clear scheduled instructions and reset cycle and II state. |
|
Set the initiation interval for this schedule. |
|
Return the stage for a scheduled instruction. Return ‐1 if the instruction has not been scheduled. |
Created with MrDocs