VLIW-aware MachineSchedStrategy that converges from top and bottom queues.
Declared in <llvm/CodeGen/VLIWMachineScheduler.h>
class ConvergingVLIWScheduler
: public MachineSchedStrategy
| Name | Description |
|---|---|
MachineSchedStrategy | Interface to the scheduling algorithm used by ScheduleDAGMI. |
| Name | Description |
|---|---|
Unnamed enum | SUnit::NodeQueueId: 0 (none), 1 (top), 2 (bot), 3 (both) |
| Name | Description |
|---|---|
ConvergingVLIWScheduler [constructor] | Construct a converging VLIW scheduler with top and bottom boundaries. |
~ConvergingVLIWScheduler [destructor] [virtual] | Destroy the converging VLIW scheduler. |
doMBBSchedRegionsTopDown [virtual] | Return true to process MBB scheduling regions top-down. |
dumpPolicy [virtual] | Dump the current scheduling policy to the debug stream. |
enterMBB [virtual] | Tell the strategy that MBB is about to be processed. |
getPolicy [virtual] | Return the current per-region scheduling policy. |
initPolicy [virtual] | Optionally override the per-region scheduling policy. |
initialize | initialize overloads |
leaveMBB [virtual] | Tell the strategy that current MBB is done. |
pickNode [virtual] | Pick the next node to schedule and set IsTopNode accordingly. |
registerRoots [virtual] | Notify this strategy that all roots have been released (including those that depend on EntrySU or ExitSU). |
releaseBottomNode [virtual] | Release SU for bottom-up scheduling once successors are resolved. |
releaseTopNode [virtual] | Release SU for top-down scheduling once predecessors are resolved. |
reportPackets | Return the total packets formed by the top and bottom resource models. |
schedNode [virtual] | Notify that SU has been scheduled at the top or bottom. |
scheduleTree [virtual] | Scheduler callback to notify that a new subtree is scheduled. |
shouldTrackLaneMasks [virtual] | Return true if lane masks should be tracked while scheduling. |
shouldTrackPressure [virtual] | Check if pressure tracking is needed before building the DAG and initializing this strategy. Called after initPolicy. |
| Name | Description |
|---|---|
SchedCandidate | Store the state used by ConvergingVLIWScheduler heuristics, required for the lifetime of one invocation of pickNode(). |
VLIWSchedBoundary | One-sided scheduling boundary with ready queues and hazard state. |
| Name | Description |
|---|---|
CandResult | Represent the type of SchedCandidate found within a single queue. |
| Name | Description |
|---|---|
SchedulingCost [virtual] | Compute the scheduling cost of SU relative to Candidate. |
createVLIWResourceModel [virtual] | Create a VLIW resource model for STI and SchedModel. |
pickNodeBidrectional | Pick a node by comparing top and bottom candidates bidirectionally. |
pickNodeFromQueue | Select the best candidate from Zone into Candidate. |
pressureChange | Return the pressure-change contribution of scheduling SU. |
readyQueueVerboseDump | Dump the ready queue and pressure state for verbose misched debugging. |
traceCandidate | Trace why SU was considered as a scheduling candidate. |
| Name | Description |
|---|---|
Bot | Bottom-up scheduling boundary and its ready queues. |
DAG | Schedule DAG currently being scheduled by this strategy. |
HighPressureSets | List of pressure sets that have a high pressure level in the region. |
SchedModel | Target scheduling model for the current region. |
Top | Top-down scheduling boundary and its ready queues. |
| Name | Description |
|---|---|
PriorityOne | Highest-weight heuristic priority scale factor. |
PriorityThree | Secondary heuristic priority scale factor. |
PriorityTwo | Medium heuristic priority scale factor. |
ScaleTwo | Secondary cost scaling divisor used by heuristics. |