Priority queue interface for plugging heuristics into the list scheduler.
Declared in <llvm/CodeGen/ScheduleDAG.h>
class SchedulingPriorityQueue;
This interface is used to plug different priorities computation algorithms into the list scheduler. It implements the interface of a standard priority queue, where nodes are inserted in arbitrary order and returned in priority order. The computation of the priority and the representation of the queue are totally up to the implementation to decide.
| Name | Description |
|---|---|
SchedulingPriorityQueue [constructor] | Construct a priority queue, optionally with a ready filter. |
~SchedulingPriorityQueue [destructor] [virtual] | Virtual destructor. |
addNode [virtual] | Notify the queue that SU was added to the DAG. |
dump [virtual] | Dump queue contents for debugging. |
empty [virtual] | Returns true if the queue contains no nodes. |
getCurCycle | Return the current scheduling cycle. |
hasReadyFilter | Returns true if this queue filters nodes that are not ready. |
initNodes [virtual] | Initialize the queue from the DAG's SUnit vector. |
isBottomUp [virtual] | Returns true if this queue schedules bottom-up. |
isReady [virtual] | Returns true if SU is considered ready to schedule. |
pop [virtual] | Remove and return the highest-priority ready node. |
push [virtual] | Push scheduling unit U onto the queue. |
push_all | Push every node in Nodes onto the queue. |
releaseState [virtual] | Release any queue state held between scheduling regions. |
remove [virtual] | Remove SU from the queue without returning it. |
scheduledNode [virtual] | As each node is scheduled, this method is invoked. This allows the priority function to adjust the priority of related unscheduled nodes, for example. |
setCurCycle | Set the current scheduling cycle used by readiness heuristics. |
tracksRegPressure [virtual] | Returns true if this queue tracks register pressure. |
unscheduledNode [virtual] | Notify the queue that SU was unscheduled. |
updateNode [virtual] | Notify the queue that SU's priority-relevant state changed. |
| Name | Description |
|---|---|
LatencyPriorityQueue | Priority queue that schedules nodes by latency to shorten the critical path. |
ResourcePriorityQueue | Priority queue that schedules nodes using DFA resource state to shorten the critical path on VLIW-like targets. |