LLVM 22.0.0git
llvm::PreRARematStage Class Reference

Attempts to reduce function spilling or, if there is no spilling, to increase function occupancy by one with respect to ArchVGPR usage by sinking trivially rematerializable instructions to their use. More...

#include "Target/AMDGPU/GCNSchedStrategy.h"

Inheritance diagram for llvm::PreRARematStage:
[legend]

Public Member Functions

bool initGCNSchedStage () override
bool initGCNRegion () override
bool shouldRevertScheduling (unsigned WavesAfter) override
 PreRARematStage (GCNSchedStageID StageID, GCNScheduleDAGMILive &DAG)
Public Member Functions inherited from llvm::GCNSchedStage
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)
bool isRegionWithExcessRP () const
unsigned getRegionIdx ()
bool mayCauseSpilling (unsigned WavesAfter)
void revertScheduling ()
void advanceRegion ()
virtual ~GCNSchedStage ()=default

Additional Inherited Members

Protected Member Functions inherited from llvm::GCNSchedStage
 GCNSchedStage (GCNSchedStageID StageID, GCNScheduleDAGMILive &DAG)
Protected Attributes inherited from llvm::GCNSchedStage
GCNScheduleDAGMILiveDAG
GCNSchedStrategyS
MachineFunctionMF
SIMachineFunctionInfoMFI
const GCNSubtargetST
const GCNSchedStageID StageID
MachineBasicBlockCurrentMBB = nullptr
unsigned RegionIdx = 0
std::vector< MachineInstr * > Unsched
GCNRegPressure PressureBefore
GCNRegPressure PressureAfter
std::vector< std::unique_ptr< ScheduleDAGMutation > > SavedMutations

Detailed Description

Attempts to reduce function spilling or, if there is no spilling, to increase function occupancy by one with respect to ArchVGPR usage by sinking trivially rematerializable instructions to their use.

When the stage estimates reducing spilling or increasing occupancy is possible, as few instructions as possible are rematerialized to reduce potential negative effects on function latency.

Definition at line 440 of file GCNSchedStrategy.h.

Constructor & Destructor Documentation

◆ PreRARematStage()

llvm::PreRARematStage::PreRARematStage ( GCNSchedStageID StageID,
GCNScheduleDAGMILive & DAG )
inline

Member Function Documentation

◆ initGCNRegion()

bool PreRARematStage::initGCNRegion ( )
overridevirtual

◆ initGCNSchedStage()

◆ shouldRevertScheduling()

bool PreRARematStage::shouldRevertScheduling ( unsigned WavesAfter)
overridevirtual

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