LLVM 24.0.0git
llvm::GCNUpwardRPTracker Class Reference

#include "Target/AMDGPU/GCNRegPressure.h"

Inheritance diagram for llvm::GCNUpwardRPTracker:
[legend]

Public Member Functions

 GCNUpwardRPTracker (LiveIntervals &LIS_)
void reset (const MachineInstr &MI)
 Resets tracker to the point just after MI (in program order), which can be a debug instruction.
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.
GCNRegPressure getMaxPressureAndReset ()
void reset (const MachineInstr &MI, bool After)
 Resets tracker before or After the provided MI, which can be a debug instruction.
void reset (const MachineBasicBlock &MBB, bool End)
 Resets tracker at the start or End of the MBB.
void reset (const MachineRegisterInfo &MRI, SlotIndex SI)
 Resets tracker at the specified slot index SI.
void reset (const MachineRegisterInfo &MRI, const LiveRegSet &LiveRegs)
 Resets tracker with the provided LiveRegs.
Public Member Functions inherited from llvm::GCNRPTracker
void reset (const MachineRegisterInfo &MRI, const LiveRegSet &LiveRegs)
 Resets tracker with the provided LiveRegs.
const decltype(LiveRegs) & getLiveRegs () const
const MachineInstr * getLastTrackedMI () const
void clearMaxPressure ()
const GCNRegPressure & getMaxPressure () const
void resetMaxPressure ()
GCNRegPressure getPressure () const
decltype(LiveRegs) moveLiveRegs ()

Additional Inherited Members

Public Types inherited from llvm::GCNRPTracker
using LiveRegSet = DenseMap<unsigned, LaneBitmask>
Protected Member Functions inherited from llvm::GCNRPTracker
 GCNRPTracker (LiveIntervals &LIS_)
void reset (const MachineInstr &MI, bool After)
 Resets tracker before or After the provided MI, which can be a debug instruction.
void reset (const MachineBasicBlock &MBB, bool End)
 Resets tracker at the start or End of the MBB.
void reset (const MachineRegisterInfo &MRI, SlotIndex SI)
 Resets tracker at the specified slot index SI.
LaneBitmask getLastUsedLanes (Register Reg, SlotIndex Pos) const
 Mostly copy/paste from CodeGen/RegisterPressure.cpp.
Protected Attributes inherited from llvm::GCNRPTracker
LiveIntervals & LIS
LiveRegSet LiveRegs
GCNRegPressure CurPressure
GCNRegPressure MaxPressure
const MachineInstr * LastTrackedMI = nullptr
const MachineRegisterInfo * MRI = nullptr

Detailed Description

Definition at line 362 of file GCNRegPressure.h.

Constructor & Destructor Documentation

◆ GCNUpwardRPTracker()

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

Definition at line 364 of file GCNRegPressure.h.

References llvm::GCNRPTracker::GCNRPTracker().

Member Function Documentation

◆ getMaxPressureAndReset()

GCNRegPressure llvm::GCNUpwardRPTracker::getMaxPressureAndReset ( )
inline

◆ isValid()

bool GCNUpwardRPTracker::isValid ( ) const

◆ recede()

◆ reset() [1/5]

void GCNRPTracker::reset ( const MachineBasicBlock & MBB,
bool End )

Resets tracker at the start or End of the MBB.

Definition at line 326 of file GCNRegPressure.cpp.

References assert().

◆ reset() [2/5]

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

Resets tracker to the point just after MI (in program order), which can be a debug instruction.

Definition at line 370 of file GCNRegPressure.h.

References MI, and reset().

Referenced by llvm::dumpMaxRegPressure(), reset(), and llvm::GCNRegPressurePrinter::runOnMachineFunction().

◆ reset() [3/5]

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

Resets tracker before or After the provided MI, which can be a debug instruction.

Definition at line 323 of file GCNRegPressure.cpp.

◆ reset() [4/5]

void GCNRPTracker::reset ( const MachineRegisterInfo & MRI,
const LiveRegSet & LiveRegs )

Resets tracker with the provided LiveRegs.

Definition at line 335 of file GCNRegPressure.cpp.

◆ reset() [5/5]

void GCNRPTracker::reset ( const MachineRegisterInfo & MRI,
SlotIndex SI )

Resets tracker at the specified slot index SI.

Definition at line 329 of file GCNRegPressure.cpp.

References llvm::GCNRPTracker::LIS, and llvm::LiveInterval::subranges().


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