LLVM 20.0.0git
Public Member Functions | List of all members
llvm::GCNUpwardRPTracker Class Reference

#include "Target/AMDGPU/GCNRegPressure.h"

Inheritance diagram for llvm::GCNUpwardRPTracker:
Inheritance graph
[legend]

Public Member Functions

 GCNUpwardRPTracker (const LiveIntervals &LIS_)
 
void reset (const MachineRegisterInfo &MRI, SlotIndex SI)
 reset tracker at the specified slot index SI.
 
void reset (const MachineBasicBlock &MBB)
 reset tracker to the end of the MBB.
 
void reset (const MachineInstr &MI)
 reset tracker to the point just after MI (in program order).
 
void recede (const MachineInstr &MI)
 Move to the state of RP just before the MI .
 
bool isValid () const
 returns whether the tracker's state after receding MI corresponds to reported by LIS.
 
const GCNRegPressuregetMaxPressure () const
 
void resetMaxPressure ()
 
GCNRegPressure getMaxPressureAndReset ()
 
void reset (const MachineInstr &MI, const LiveRegSet *LiveRegsCopy, bool After)
 
void reset (const MachineRegisterInfo &MRI_, const LiveRegSet &LiveRegs_)
 
- Public Member Functions inherited from llvm::GCNRPTracker
void reset (const MachineRegisterInfo &MRI_, const LiveRegSet &LiveRegs_)
 
const decltype(LiveRegs) & getLiveRegs () const
 
const MachineInstrgetLastTrackedMI () const
 
void clearMaxPressure ()
 
GCNRegPressure getPressure () const
 
decltype(LiveRegsmoveLiveRegs ()
 

Additional Inherited Members

- Public Types inherited from llvm::GCNRPTracker
using LiveRegSet = DenseMap< unsigned, LaneBitmask >
 
- Protected Member Functions inherited from llvm::GCNRPTracker
 GCNRPTracker (const LiveIntervals &LIS_)
 
void reset (const MachineInstr &MI, const LiveRegSet *LiveRegsCopy, bool After)
 
void bumpDeadDefs (ArrayRef< RegisterMaskPair > DeadDefs)
 Mostly copy/paste from CodeGen/RegisterPressure.cpp.
 
LaneBitmask getLastUsedLanes (Register RegUnit, SlotIndex Pos) const
 Mostly copy/paste from CodeGen/RegisterPressure.cpp.
 
- Protected Attributes inherited from llvm::GCNRPTracker
const LiveIntervalsLIS
 
LiveRegSet LiveRegs
 
GCNRegPressure CurPressure
 
GCNRegPressure MaxPressure
 
const MachineInstrLastTrackedMI = nullptr
 
const MachineRegisterInfoMRI = nullptr
 

Detailed Description

Definition at line 199 of file GCNRegPressure.h.

Constructor & Destructor Documentation

◆ GCNUpwardRPTracker()

llvm::GCNUpwardRPTracker::GCNUpwardRPTracker ( const LiveIntervals LIS_)
inline

Definition at line 201 of file GCNRegPressure.h.

Member Function Documentation

◆ getMaxPressure()

const GCNRegPressure & llvm::GCNUpwardRPTracker::getMaxPressure ( ) const
inline

◆ getMaxPressureAndReset()

GCNRegPressure llvm::GCNUpwardRPTracker::getMaxPressureAndReset ( )
inline

◆ isValid()

bool GCNUpwardRPTracker::isValid ( ) const

◆ recede()

void GCNUpwardRPTracker::recede ( const MachineInstr MI)

◆ reset() [1/5]

void llvm::GCNUpwardRPTracker::reset ( const MachineBasicBlock MBB)
inline

reset tracker to the end of the MBB.

Definition at line 211 of file GCNRegPressure.h.

References llvm::SlotIndexes::getMBBEndIdx(), llvm::LiveIntervals::getSlotIndexes(), llvm::GCNRPTracker::LIS, MBB, and reset().

◆ reset() [2/5]

void llvm::GCNUpwardRPTracker::reset ( const MachineInstr MI)
inline

reset tracker to the point just after MI (in program order).

Definition at line 217 of file GCNRegPressure.h.

References llvm::SlotIndex::getDeadSlot(), llvm::LiveIntervals::getInstructionIndex(), llvm::GCNRPTracker::LIS, MI, and reset().

◆ reset() [3/5]

void GCNRPTracker::reset ( const MachineInstr MI,
const LiveRegSet LiveRegsCopy,
bool  After 
)

Definition at line 169 of file GCNRegPressure.cpp.

References llvm::GCNRegPressure::getVGPRNum().

◆ reset() [4/5]

void llvm::GCNUpwardRPTracker::reset ( const MachineRegisterInfo MRI,
SlotIndex  SI 
)
inline

◆ reset() [5/5]

void GCNRPTracker::reset ( const MachineRegisterInfo MRI_,
const LiveRegSet LiveRegs_ 
)

Definition at line 179 of file GCNRegPressure.cpp.

◆ resetMaxPressure()

void llvm::GCNUpwardRPTracker::resetMaxPressure ( )
inline

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