llvm::ConvergingVLIWScheduler

VLIW-aware MachineSchedStrategy that converges from top and bottom queues.

Synopsis

Declared in <llvm/CodeGen/VLIWMachineScheduler.h>

class ConvergingVLIWScheduler
    : public MachineSchedStrategy

Base Classes

NameDescription
MachineSchedStrategyInterface to the scheduling algorithm used by ScheduleDAGMI.

Enums

NameDescription
Unnamed enum SUnit::NodeQueueId: 0 (none), 1 (top), 2 (bot), 3 (both)

Member Functions

NameDescription
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.

Protected Types

NameDescription
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.

Protected Enums

NameDescription
CandResult Represent the type of SchedCandidate found within a single queue.

Protected Member Functions

NameDescription
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.

Protected Data Members

NameDescription
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.

Protected Static Data Members

NameDescription
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.