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:
- lib/Target/AMDGPU/GCNSchedStrategy.h
- lib/Target/AMDGPU/GCNSchedStrategy.cpp