LLVM 23.0.0git
llvm::AMDGPUNextUseAnalysisImpl Class Reference

Classes

struct  CacheableNextUseDistance

Public Member Functions

void getNextUseDistances (const GCNRPTracker::LiveRegSet &LiveRegs, const MachineInstr &MI, LiveRegUse &Furthest, LiveRegUse *FurthestSubreg=nullptr, DenseMap< const MachineOperand *, UseDistancePair > *RelevantUses=nullptr)
void printVerboseInstrFields (json::OStream &J, const MachineInstr &MI) const
void printPaths (json::OStream &J, ModuleSlotTracker &MST) const
 AMDGPUNextUseAnalysisImpl (const MachineFunction *, const MachineLoopInfo *)
 ~AMDGPUNextUseAnalysisImpl ()
AMDGPUNextUseAnalysis::Config getConfig () const
void setConfig (AMDGPUNextUseAnalysis::Config NewCfg)
unsigned getDistanceCacheHits () const
unsigned getDistanceCacheMisses () const
void getReachableUses (Register LiveReg, LaneBitmask LaneMask, const MachineInstr &MI, SmallVector< const MachineOperand * > &Uses) const
NextUseDistance getShortestDistance (Register LiveReg, LaneBitmask LaneMask, const MachineInstr &FromMI, const SmallVector< const MachineOperand * > &Uses, const MachineOperand **ShortestUseOut, bool *MIDependent, SmallVector< CacheableNextUseDistance > *Distances) const
 \Returns the shortest next-use distance for LiveReg.
NextUseDistance getShortestDistance (Register LiveReg, const MachineInstr &FromMI, const SmallVector< const MachineOperand * > &Uses) const

Static Public Attributes

static constexpr bool InstrRelative = true
static constexpr bool InstrInvariant = false

Detailed Description

Definition at line 264 of file AMDGPUNextUseAnalysis.cpp.

Constructor & Destructor Documentation

◆ AMDGPUNextUseAnalysisImpl()

AMDGPUNextUseAnalysisImpl::AMDGPUNextUseAnalysisImpl ( const MachineFunction * MF,
const MachineLoopInfo * ML )

◆ ~AMDGPUNextUseAnalysisImpl()

llvm::AMDGPUNextUseAnalysisImpl::~AMDGPUNextUseAnalysisImpl ( )
inline

Definition at line 2079 of file AMDGPUNextUseAnalysis.cpp.

Member Function Documentation

◆ getConfig()

AMDGPUNextUseAnalysis::Config llvm::AMDGPUNextUseAnalysisImpl::getConfig ( ) const
inline

Definition at line 2081 of file AMDGPUNextUseAnalysis.cpp.

◆ getDistanceCacheHits()

unsigned llvm::AMDGPUNextUseAnalysisImpl::getDistanceCacheHits ( ) const
inline

Definition at line 2088 of file AMDGPUNextUseAnalysis.cpp.

◆ getDistanceCacheMisses()

unsigned llvm::AMDGPUNextUseAnalysisImpl::getDistanceCacheMisses ( ) const
inline

Definition at line 2089 of file AMDGPUNextUseAnalysis.cpp.

◆ getNextUseDistances()

void llvm::AMDGPUNextUseAnalysisImpl::getNextUseDistances ( const GCNRPTracker::LiveRegSet & LiveRegs,
const MachineInstr & MI,
LiveRegUse & Furthest,
LiveRegUse * FurthestSubreg = nullptr,
DenseMap< const MachineOperand *, UseDistancePair > * RelevantUses = nullptr )
inline

◆ getReachableUses()

void AMDGPUNextUseAnalysisImpl::getReachableUses ( Register LiveReg,
LaneBitmask LaneMask,
const MachineInstr & MI,
SmallVector< const MachineOperand * > & Uses ) const

◆ getShortestDistance() [1/2]

NextUseDistance llvm::AMDGPUNextUseAnalysisImpl::getShortestDistance ( Register LiveReg,
const MachineInstr & FromMI,
const SmallVector< const MachineOperand * > & Uses ) const
inline

◆ getShortestDistance() [2/2]

NextUseDistance AMDGPUNextUseAnalysisImpl::getShortestDistance ( Register LiveReg,
LaneBitmask LaneMask,
const MachineInstr & FromMI,
const SmallVector< const MachineOperand * > & Uses,
const MachineOperand ** ShortestUseOut,
bool * MIDependent,
SmallVector< CacheableNextUseDistance > * Distances ) const

◆ printPaths()

◆ printVerboseInstrFields()

void llvm::AMDGPUNextUseAnalysisImpl::printVerboseInstrFields ( json::OStream & J,
const MachineInstr & MI ) const
inline

Definition at line 2035 of file AMDGPUNextUseAnalysis.cpp.

References llvm::json::OStream::attribute(), and MI.

◆ setConfig()

void llvm::AMDGPUNextUseAnalysisImpl::setConfig ( AMDGPUNextUseAnalysis::Config NewCfg)
inline

Definition at line 2082 of file AMDGPUNextUseAnalysis.cpp.

Member Data Documentation

◆ InstrInvariant

bool llvm::AMDGPUNextUseAnalysisImpl::InstrInvariant = false
staticconstexpr

Definition at line 271 of file AMDGPUNextUseAnalysis.cpp.

◆ InstrRelative

bool llvm::AMDGPUNextUseAnalysisImpl::InstrRelative = true
staticconstexpr

Definition at line 270 of file AMDGPUNextUseAnalysis.cpp.


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