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

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

Public Member Functions
virtual bool initGCNSchedStage ()
virtual void finalizeGCNSchedStage ()
virtual bool initGCNRegion ()
void setupNewBlock ()
void finalizeGCNRegion ()
void checkScheduling ()
ScheduleMetrics getScheduleMetrics (const std::vector< SUnit > &InputSchedule)
ScheduleMetrics getScheduleMetrics (const GCNScheduleDAGMILive &DAG)
unsigned computeSUnitReadyCycle (const SUnit &SU, unsigned CurrCycle, DenseMap< unsigned, unsigned > &ReadyCycles, const TargetSchedModel &SM)
virtual bool shouldRevertScheduling (unsigned WavesAfter)
bool isRegionWithExcessRP () const
unsigned getRegionIdx ()
bool mayCauseSpilling (unsigned WavesAfter)
void revertScheduling ()
void advanceRegion ()
virtual ~GCNSchedStage ()=default
Protected Attributes
GCNScheduleDAGMILive & DAG
GCNSchedStrategy & S
MachineFunction & MF
SIMachineFunctionInfo & MFI
const GCNSubtarget & ST
const GCNSchedStageID StageID
MachineBasicBlock * CurrentMBB = nullptr
unsigned RegionIdx = 0
std::vector< MachineInstr * > Unsched
GCNRegPressure PressureBefore
GCNRegPressure PressureAfter
std::vector< std::unique_ptr< ScheduleDAGMutation > > SavedMutations

Definition at line 325 of file GCNSchedStrategy.h.

Definition at line 1207 of file GCNSchedStrategy.cpp.

References DAG, MF, MFI, S, ST, and StageID.

Referenced by llvm::ClusteredLowOccStage::ClusteredLowOccStage(), llvm::ILPInitialScheduleStage::ILPInitialScheduleStage(), llvm::MemoryClauseInitialScheduleStage::MemoryClauseInitialScheduleStage(), llvm::OccInitialScheduleStage::OccInitialScheduleStage(), llvm::PreRARematStage::PreRARematStage(), and llvm::UnclusteredHighRPStage::UnclusteredHighRPStage().

~GCNSchedStage()

virtual llvm::GCNSchedStage::~GCNSchedStage ( ) virtualdefault

advanceRegion()

void llvm::GCNSchedStage::advanceRegion ( ) inline

checkScheduling()

void GCNSchedStage::checkScheduling ( )

Definition at line 1481 of file GCNSchedStrategy.cpp.

References DAG, llvm::dbgs(), LLVM_DEBUG, MF, MFI, PressureAfter, PressureBefore, llvm::print(), RegionIdx, revertScheduling(), S, shouldRevertScheduling(), and ST.

Referenced by finalizeGCNRegion().

computeSUnitReadyCycle()

finalizeGCNRegion()

void GCNSchedStage::finalizeGCNRegion ( )

finalizeGCNSchedStage()

void GCNSchedStage::finalizeGCNSchedStage ( ) virtual

getRegionIdx()

unsigned llvm::GCNSchedStage::getRegionIdx ( ) inline

getScheduleMetrics() [1/2]

getScheduleMetrics() [2/2]

initGCNRegion()

bool GCNSchedStage::initGCNRegion ( ) virtual

Reimplemented in llvm::ClusteredLowOccStage, llvm::PreRARematStage, and llvm::UnclusteredHighRPStage.

Definition at line 1343 of file GCNSchedStrategy.cpp.

References llvm::createIGroupLPDAGMutation(), CurrentMBB, DAG, llvm::dbgs(), llvm::getRegPressure(), I, if(), llvm::ILPInitialSchedule, llvm::AMDGPU::Initial, llvm::SIInstrInfo::isIGLPMutationOnly(), isRegionWithExcessRP(), LLVM_DEBUG, MF, llvm::OccInitialSchedule, llvm::AMDGPU::PreRAReentry, PressureBefore, llvm::print(), llvm::printMBBReference(), RegionIdx, S, SavedMutations, setupNewBlock(), StageID, llvm::UnclusteredHighRPReschedule, and Unsched.

Referenced by llvm::ClusteredLowOccStage::initGCNRegion(), llvm::PreRARematStage::initGCNRegion(), and llvm::UnclusteredHighRPStage::initGCNRegion().

initGCNSchedStage()

bool GCNSchedStage::initGCNSchedStage ( ) virtual

isRegionWithExcessRP()

bool llvm::GCNSchedStage::isRegionWithExcessRP ( ) const inline

mayCauseSpilling()

Definition at line 1768 of file GCNSchedStrategy.cpp.

References llvm::dbgs(), isRegionWithExcessRP(), LLVM_DEBUG, MF, MFI, PressureAfter, and PressureBefore.

Referenced by llvm::ClusteredLowOccStage::shouldRevertScheduling(), llvm::ILPInitialScheduleStage::shouldRevertScheduling(), llvm::MemoryClauseInitialScheduleStage::shouldRevertScheduling(), llvm::OccInitialScheduleStage::shouldRevertScheduling(), llvm::PreRARematStage::shouldRevertScheduling(), and llvm::UnclusteredHighRPStage::shouldRevertScheduling().

revertScheduling()

void GCNSchedStage::revertScheduling ( )

setupNewBlock()

void GCNSchedStage::setupNewBlock ( )

shouldRevertScheduling()

bool GCNSchedStage::shouldRevertScheduling ( unsigned WavesAfter) virtual

Reimplemented in llvm::ClusteredLowOccStage, llvm::ILPInitialScheduleStage, llvm::MemoryClauseInitialScheduleStage, llvm::OccInitialScheduleStage, llvm::PreRARematStage, and llvm::UnclusteredHighRPStage.

Definition at line 1667 of file GCNSchedStrategy.cpp.

References DAG, llvm::AMDGPU::IsaInfo::getAllocatedNumVGPRBlocks(), PressureAfter, PressureBefore, and ST.

Referenced by checkScheduling(), llvm::ClusteredLowOccStage::shouldRevertScheduling(), llvm::OccInitialScheduleStage::shouldRevertScheduling(), llvm::PreRARematStage::shouldRevertScheduling(), and llvm::UnclusteredHighRPStage::shouldRevertScheduling().

CurrentMBB

DAG

Definition at line 327 of file GCNSchedStrategy.h.

Referenced by checkScheduling(), llvm::ClusteredLowOccStage::ClusteredLowOccStage(), computeSUnitReadyCycle(), finalizeGCNRegion(), finalizeGCNSchedStage(), llvm::UnclusteredHighRPStage::finalizeGCNSchedStage(), GCNSchedStage(), getScheduleMetrics(), llvm::ILPInitialScheduleStage::ILPInitialScheduleStage(), llvm::ClusteredLowOccStage::initGCNRegion(), initGCNRegion(), llvm::UnclusteredHighRPStage::initGCNRegion(), llvm::ClusteredLowOccStage::initGCNSchedStage(), initGCNSchedStage(), llvm::PreRARematStage::initGCNSchedStage(), llvm::UnclusteredHighRPStage::initGCNSchedStage(), isRegionWithExcessRP(), llvm::MemoryClauseInitialScheduleStage::MemoryClauseInitialScheduleStage(), llvm::OccInitialScheduleStage::OccInitialScheduleStage(), llvm::PreRARematStage::PreRARematStage(), revertScheduling(), setupNewBlock(), shouldRevertScheduling(), llvm::UnclusteredHighRPStage::shouldRevertScheduling(), and llvm::UnclusteredHighRPStage::UnclusteredHighRPStage().

MF

MFI

PressureAfter

PressureBefore

RegionIdx

unsigned llvm::GCNSchedStage::RegionIdx = 0 protected

Definition at line 343 of file GCNSchedStrategy.h.

Referenced by advanceRegion(), checkScheduling(), finalizeGCNRegion(), getRegionIdx(), llvm::ClusteredLowOccStage::initGCNRegion(), initGCNRegion(), llvm::PreRARematStage::initGCNRegion(), llvm::UnclusteredHighRPStage::initGCNRegion(), isRegionWithExcessRP(), revertScheduling(), and setupNewBlock().

S

SavedMutations

ST

StageID

Definition at line 337 of file GCNSchedStrategy.h.

Referenced by llvm::ClusteredLowOccStage::ClusteredLowOccStage(), finalizeGCNRegion(), finalizeGCNSchedStage(), llvm::UnclusteredHighRPStage::finalizeGCNSchedStage(), GCNSchedStage(), llvm::ILPInitialScheduleStage::ILPInitialScheduleStage(), initGCNRegion(), initGCNSchedStage(), llvm::MemoryClauseInitialScheduleStage::MemoryClauseInitialScheduleStage(), llvm::OccInitialScheduleStage::OccInitialScheduleStage(), llvm::PreRARematStage::PreRARematStage(), setupNewBlock(), and llvm::UnclusteredHighRPStage::UnclusteredHighRPStage().

Unsched


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