LLVM: llvm::AArch64PostRASchedStrategy Class Reference (original) (raw)

A MachineSchedStrategy implementation for AArch64 post RA scheduling. More...

#include "[Target/AArch64/AArch64MachineScheduler.h](AArch64MachineScheduler%5F8h%5Fsource.html)"

Public Member Functions
AArch64PostRASchedStrategy (const MachineSchedContext *C)
Public Member Functions inherited from llvm::PostGenericScheduler
PostGenericScheduler (const MachineSchedContext *C)
~PostGenericScheduler () override=default
void initPolicy (MachineBasicBlock::iterator Begin, MachineBasicBlock::iterator End, unsigned NumRegionInstrs) override
Optionally override the per-region scheduling policy.
bool shouldTrackPressure () const override
PostRA scheduling does not track pressure.
void initialize (ScheduleDAGMI *Dag) override
Initialize the strategy after building the DAG for a new region.
void registerRoots () override
Notify this strategy that all roots have been released (including those that depend on EntrySU or ExitSU).
SUnit * pickNode (bool &IsTopNode) override
Pick the next node to schedule.
SUnit * pickNodeBidirectional (bool &IsTopNode)
Pick the best candidate node from either the top or bottom queue.
void scheduleTree (unsigned SubtreeID) override
Scheduler callback to notify that a new subtree is scheduled.
void schedNode (SUnit *SU, bool IsTopNode) override
Called after ScheduleDAGMI has scheduled an instruction and updated scheduled/remaining flags in the DAG nodes.
void releaseTopNode (SUnit *SU) override
When all predecessor dependencies have been resolved, free this node for top-down scheduling.
void releaseBottomNode (SUnit *SU) override
When all successor dependencies have been resolved, free this node for bottom-up scheduling.
Public Member Functions inherited from llvm::MachineSchedStrategy
virtual ~MachineSchedStrategy ()=default
virtual void dumpPolicy () const
virtual bool shouldTrackLaneMasks () const
Returns true if lanemasks should be tracked.
virtual bool doMBBSchedRegionsTopDown () const
virtual void enterMBB (MachineBasicBlock *MBB)
Tell the strategy that MBB is about to be processed.
virtual void leaveMBB ()
Tell the strategy that current MBB is done.
Protected Member Functions
bool tryCandidate (SchedCandidate &Cand, SchedCandidate &TryCand) override
Apply a set of heuristics to a new candidate for PostRA scheduling.
Protected Member Functions inherited from llvm::PostGenericScheduler
void pickNodeFromQueue (SchedBoundary &Zone, SchedCandidate &Cand)
Protected Member Functions inherited from llvm::GenericSchedulerBase
GenericSchedulerBase (const MachineSchedContext *C)
LLVM_ABI void setPolicy (CandPolicy &Policy, bool IsPostRA, SchedBoundary &CurrZone, SchedBoundary *OtherZone)
Set the CandPolicy given a scheduling zone given the current resources and latencies inside and outside the zone.
MachineSchedPolicy getPolicy () const override
void traceCandidate (const SchedCandidate &Cand)
Additional Inherited Members
Public Types inherited from llvm::GenericSchedulerBase
enum CandReason : uint8_t { NoCand, Only1, PhysReg, RegExcess, RegCritical, Stall, Cluster, Weak, RegMax, ResourceReduce, ResourceDemand, BotHeightReduce, BotPathReduce, TopDepthReduce, TopPathReduce, NodeOrder, FirstValid }
Represent the type of SchedCandidate found within a single queue. More...
Static Public Member Functions inherited from llvm::GenericSchedulerBase
static const char * getReasonStr (GenericSchedulerBase::CandReason Reason)
Protected Attributes inherited from llvm::PostGenericScheduler
ScheduleDAGMI * DAG = nullptr
SchedBoundary Top
SchedBoundary Bot
SchedCandidate TopCand
Candidate last picked from Top boundary.
SchedCandidate BotCand
Candidate last picked from Bot boundary.
unsigned TopClusterID
unsigned BotClusterID
Protected Attributes inherited from llvm::GenericSchedulerBase
const MachineSchedContext * Context
const TargetSchedModel * SchedModel = nullptr
const TargetRegisterInfo * TRI = nullptr
unsigned TopIdx = 0
unsigned BotIdx = 0
unsigned NumRegionInstrs = 0
MachineSchedPolicy RegionPolicy
SchedRemainder Rem

A MachineSchedStrategy implementation for AArch64 post RA scheduling.

Definition at line 21 of file AArch64MachineScheduler.h.

tryCandidate()


The documentation for this class was generated from the following files: