class GenericSchedulerBase
Declaration
class GenericSchedulerBase : public MachineSchedStrategy { /* full declaration omitted */ };
Description
Base class for GenericScheduler. This class maintains information about scheduling candidates based on TargetSchedModel making it easy to implement heuristics for either preRA or postRA scheduling.
Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:811
Inherits from: MachineSchedStrategy
Member Variables
- protected const llvm::MachineSchedContext* Context
- protected const llvm::TargetSchedModel* SchedModel = nullptr
- protected const llvm::TargetRegisterInfo* TRI = nullptr
- protected llvm::SchedRemainder Rem
Method Overview
- protected GenericSchedulerBase(const llvm::MachineSchedContext * C)
- public static const char * getReasonStr(GenericSchedulerBase::CandReason Reason)
- protected void setPolicy(llvm::GenericSchedulerBase::CandPolicy & Policy, bool IsPostRA, llvm::SchedBoundary & CurrZone, llvm::SchedBoundary * OtherZone)
- private bool shouldReduceLatency(const llvm::GenericSchedulerBase::CandPolicy & Policy, llvm::SchedBoundary & CurrZone, bool ComputeRemLatency, unsigned int & RemLatency) const
- protected void traceCandidate(const llvm::GenericSchedulerBase::SchedCandidate & Cand)
Inherited from MachineSchedStrategy:
- public doMBBSchedRegionsTopDown
- public dumpPolicy
- public enterMBB
- public initPolicy
- public initialize
- public leaveMBB
- public pickNode
- public registerRoots
- public releaseBottomNode
- public releaseTopNode
- public schedNode
- public scheduleTree
- public shouldTrackLaneMasks
- public shouldTrackPressure
Methods
¶GenericSchedulerBase(
const llvm::MachineSchedContext* C)
GenericSchedulerBase(
const llvm::MachineSchedContext* C)
Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:916
Parameters
- const llvm::MachineSchedContext* C
¶static const char* getReasonStr(
GenericSchedulerBase::CandReason Reason)
static const char* getReasonStr(
GenericSchedulerBase::CandReason Reason)
Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:821
Parameters
- GenericSchedulerBase::CandReason Reason
¶void setPolicy(
llvm::GenericSchedulerBase::CandPolicy&
Policy,
bool IsPostRA,
llvm::SchedBoundary& CurrZone,
llvm::SchedBoundary* OtherZone)
void setPolicy(
llvm::GenericSchedulerBase::CandPolicy&
Policy,
bool IsPostRA,
llvm::SchedBoundary& CurrZone,
llvm::SchedBoundary* OtherZone)
Description
Set the CandPolicy given a scheduling zone given the current resources and latencies inside and outside the zone.
Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:918
Parameters
- llvm::GenericSchedulerBase::CandPolicy& Policy
- bool IsPostRA
- llvm::SchedBoundary& CurrZone
- llvm::SchedBoundary* OtherZone
¶bool shouldReduceLatency(
const llvm::GenericSchedulerBase::CandPolicy&
Policy,
llvm::SchedBoundary& CurrZone,
bool ComputeRemLatency,
unsigned int& RemLatency) const
bool shouldReduceLatency(
const llvm::GenericSchedulerBase::CandPolicy&
Policy,
llvm::SchedBoundary& CurrZone,
bool ComputeRemLatency,
unsigned int& RemLatency) const
Description
Returns true if the current cycle plus remaning latency is greater than the critical path in the scheduling region.
Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:926
Parameters
- const llvm::GenericSchedulerBase::CandPolicy& Policy
- llvm::SchedBoundary& CurrZone
- bool ComputeRemLatency
- unsigned int& RemLatency
¶void traceCandidate(
const llvm::GenericSchedulerBase::
SchedCandidate& Cand)
void traceCandidate(
const llvm::GenericSchedulerBase::
SchedCandidate& Cand)
Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:922
Parameters
- const llvm::GenericSchedulerBase::SchedCandidate& Cand