Post‐RA generic scheduler driven by ScheduleDAGMI callbacks.

Synopsis

Declared in <llvm/CodeGen/MachineScheduler.h>

class PostGenericScheduler
    : public GenericSchedulerBase

Description

Callbacks from ScheduleDAGMI: initPolicy ‐> initialize(DAG) ‐> registerRoots ‐> pickNode ...

Base Classes

Name

Description

GenericSchedulerBase

Base class for GenericScheduler candidate heuristics.

Types

Name

Description

CandPolicy

Policy for scheduling the next instruction in the candidate's zone.

SchedCandidate

Store the state used by GenericScheduler heuristics, required for the lifetime of one invocation of pickNode().

SchedResourceDelta

Status of an instruction's critical resource consumption.

Enums

Name

Description

CandReason

Represent the type of SchedCandidate found within a single queue. pickNodeBidirectional depends on these listed by decreasing priority.

Member Functions

Name

Description

PostGenericScheduler [constructor]

Construct a post‐RA generic scheduler for context C.

~PostGenericScheduler [destructor] [virtual]

Destroy the post‐RA generic 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]

Initialize per‐region policy for instructions in []`Begin,` End).

initialize

initialize overloads

leaveMBB [virtual]

Tell the strategy that current MBB is done.

pickNode [virtual]

Pick the next node to schedule from either boundary.

pickNodeBidirectional

Pick from top and bottom queues and choose the better candidate.

registerRoots [virtual]

Register region roots before picking nodes.

releaseBottomNode [virtual]

Release SU into the bottom ready queues when successors are done.

releaseTopNode [virtual]

Release SU into the top ready queues when predecessors are done.

schedNode [virtual]

Update boundaries after scheduling SU.

scheduleTree [virtual]

Post‐RA scheduling does not support subtree analysis.

shouldTrackLaneMasks [virtual]

Return true if lane masks should be tracked while scheduling.

shouldTrackPressure [virtual]

PostRA scheduling does not track pressure.

Static Member Functions

Name

Description

getReasonStr

Return a debug string for candidate selection reason Reason.

Protected Member Functions

Name

Description

getPolicy [virtual]

Return the current per‐region scheduling policy.

pickNodeFromQueue

Pick the best candidate from Zone's available queue into Cand.

setPolicy

Update Policy for the next pick based on zone pressure and resources.

traceCandidate

Trace debug information for candidate Cand.

tryCandidate [virtual]

Compare TryCand against Cand and keep the better one.

Protected Data Members

Name

Description

Bot

State of the bottom scheduled instruction boundary.

BotCand

Candidate last picked from Bot boundary.

BotClusterID

Cluster ID of the last instruction scheduled from the bottom.

BotIdx

Index of the bottom boundary within the current region.

Context

Pass context used to access target and analysis data.

DAG

Post‐RA schedule DAG for the current region.

NumRegionInstrs

Number of instructions in the current scheduling region.

RegionPolicy

Per‐region scheduling policy for this strategy.

Rem

Remainder of unscheduled latency and resources.

SchedModel

Target scheduling model for the current subtarget.

TRI

Target register info used by pressure heuristics.

Top

State of the top scheduled instruction boundary.

TopCand

Candidate last picked from Top boundary.

TopClusterID

Cluster ID of the last instruction scheduled from the top.

TopIdx

Index of the top boundary within the current region.

Created with MrDocs