LLVM 22.0.0git
Classes | Public Member Functions | List of all members
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
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
 

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

Definition at line 513 of file GCNSchedStrategy.h.

References llvm::size().

Member Function Documentation

◆ initGCNRegion()

bool PreRARematStage::initGCNRegion ( )
overridevirtual

◆ initGCNSchedStage()

bool PreRARematStage::initGCNSchedStage ( )
overridevirtual

◆ shouldRevertScheduling()

bool PreRARematStage::shouldRevertScheduling ( unsigned  WavesAfter)
overridevirtual

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