Scheduling unit. This is a node in the scheduling DAG.
Synopsis
Declared in <llvm/CodeGen/ScheduleDAG.h>
class SUnit;
Type Aliases
Name |
Description |
Const iterator over predecessor dependence edges. |
|
Const iterator over successor dependence edges. |
|
Mutable iterator over predecessor dependence edges. |
|
Mutable iterator over successor dependence edges. |
Member Functions
Name |
Description |
|
Constructors |
Adds the specified edge as a pred of the current node if not already. It also adds the current node as a successor of the specified node. |
|
Adds a barrier edge to SU by calling addPred(), with latency 0 generally or latency 1 for a store followed by a load. |
|
Orders this node's predecessor edges such that the critical path edge occurs first. |
|
Dump scheduling attributes of this SUnit for debugging. |
|
Returns the depth of this node, which is the length of the maximum path up to any node which has no predecessors. |
|
Returns the height of this node, which is the length of the maximum path down to any node which has no successors. |
|
Returns the representative MachineInstr for this SUnit. This may be used during post‐regalloc scheduling. |
|
Returns the representative SDNode for this SUnit. This may be used during pre‐regalloc scheduling. |
|
Returns true if all successors have been scheduled. |
|
Boundary nodes are placeholders for the boundary of the scheduling region. |
|
Returns true if this SUnit belongs to a cluster group. |
|
Returns true if this SUnit refers to a machine instruction as opposed to an SDNode. |
|
Tests if node N is a predecessor of this node. |
|
Tests if node N is a successor of this node. |
|
Returns true if all predecessors have been scheduled. |
|
Removes the specified edge as a pred of the current node if it exists. It also removes the current node as a successor of the specified node. |
|
Sets a flag in this node to indicate that its stored Depth value will require recomputation the next time getDepth() is called. |
|
If NewDepth is greater than this node's depth value, sets it to be the new depth value. This also recursively marks successor nodes dirty. |
|
Sets a flag in this node to indicate that its stored Height value will require recomputation the next time getHeight() is called. |
|
If NewHeight is greater than this node's height value, set it to be the new height value. This also recursively marks predecessor nodes dirty. |
|
Assigns the instruction for the SUnit. This may be used during post‐regalloc scheduling. |
|
Assigns the representative SDNode for this SUnit. This may be used during pre‐regalloc scheduling. |
Data Members
Name |
Description |
Cycle relative to end when node is ready. |
|
Destination register class for a special copy node, or nullptr. |
|
Source register class for a special copy node, or nullptr. |
|
|
Alternatively, a MachineInstr. |
Node latency. |
|
|
Representative node. |
Entry # of node in the node vector. |
|
Queue id of node. |
|
# of SDep::Data preds. |
|
# of preds not scheduled. |
|
# of reg defs with no scheduled use. |
|
# of SDep::Data sucss. |
|
# of succs not scheduled. |
|
If not this, the node from which this node |
|
The parent cluster id. |
|
All sunit predecessors. |
|
was cloned. (SD scheduling only) |
|
Scheduling preference. |
|
All sunit successors. |
|
Cycle relative to start when node is ready. |
|
# of weak preds not scheduled. |
|
# of weak succs not scheduled. |
|
Has any physreg defs, used or not. |
|
Has physreg defs that are being used. |
|
Has physreg uses. |
|
Uses a reserved resource. |
|
True once available. |
|
Is a function call. |
|
Is a function call operand. |
|
True if this node has been cloned. |
|
Is a commutable instruction. |
|
True once pending. |
|
True if preferable to schedule high. |
|
True if preferable to schedule low. |
|
True once scheduled. |
|
Is a two‐address instruction. |
|
Uses an unbuffered resource. |
|
May use and def the same vreg. |
Non-Member Functions
Name |
Description |
Return a bias score for scheduling physreg‐related unit |
|
Return the number of unresolved weak edges for |
|
Checks if the number of cluster edges between SU and its predecessors is less than FuseLimit. |
Created with MrDocs