|
LLVM 24.0.0git
|
Downward RP tracker that relies on the user to provide the next instruction down the instruction stream. More...
#include "Target/AMDGPU/GCNRegPressure.h"
Public Member Functions | |
| GCNManualDownwardRPTracker (LiveIntervals &LIS) | |
| void | advance (const MachineInstr &MI) |
Advances to the state after MI. | |
| 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::GCNDownwardRPTrackerBase | |
| GCNRegPressure | bumpDownwardPressure (const MachineInstr *MI, const SIRegisterInfo *TRI) const |
Mostly copy/paste from CodeGen/RegisterPressure.cpp Calculate the impact MI will have on CurPressure and. | |
| 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 () |
| void | setPressureCallback (std::function< void(const GCNRegPressure &)> CB) |
| Sets a function that the tracker calls with the pressure of every program point that it folds into the maximum pressure. | |
| 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::GCNDownwardRPTrackerBase | |
| GCNDownwardRPTrackerBase (LiveIntervals &LIS) | |
| void | retireDeadUses (const MachineInstr &MI) |
Retires the lanes of MI's used registers that die at MI, mirroring RegPressureTracker::advance(). | |
| void | retireDeadDefs (const MachineInstr &MI, SlotIndex SI) |
Retires the lanes defined by MI that are dead at SI, according to LIS. | |
| void | addDefs (const MachineInstr &MI) |
Adds all lanes (dead or not) defined by MI's register operands to CurPressure. | |
| Protected Member Functions inherited from llvm::GCNRPTracker | |
| GCNRPTracker (LiveIntervals &LIS_) | |
| void | updateMaxPressure (const GCNRegPressure &RP) |
Folds the pressure RP of one program point into MaxPressure and passes it to the pressure callback. | |
| 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 |
| MachineBasicBlock::const_iterator | LastTrackedMI |
| const MachineRegisterInfo * | MRI = nullptr |
| std::function< void(const GCNRegPressure &)> | PressureCallback |
Downward RP tracker that relies on the user to provide the next instruction down the instruction stream.
It still uses LIS for liveness queries.
Definition at line 528 of file GCNRegPressure.h.
|
inline |
Definition at line 530 of file GCNRegPressure.h.
References llvm::GCNDownwardRPTrackerBase::GCNDownwardRPTrackerBase(), and llvm::GCNRPTracker::LIS.
| void GCNManualDownwardRPTracker::advance | ( | const MachineInstr & | MI | ) |
Advances to the state after MI.
Definition at line 802 of file GCNRegPressure.cpp.
References llvm::GCNDownwardRPTrackerBase::addDefs(), llvm::GCNRPTracker::LastTrackedMI, llvm::GCNRPTracker::LIS, MI, llvm::GCNDownwardRPTrackerBase::retireDeadDefs(), and llvm::GCNDownwardRPTrackerBase::retireDeadUses().
| void GCNRPTracker::reset | ( | const MachineBasicBlock & | MBB, |
| bool | End ) |
Resets tracker at the start or End of the MBB.
Definition at line 359 of file GCNRegPressure.cpp.
| 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 356 of file GCNRegPressure.cpp.
| void GCNRPTracker::reset | ( | const MachineRegisterInfo & | MRI, |
| const LiveRegSet & | LiveRegs ) |
Resets tracker with the provided LiveRegs.
Definition at line 368 of file GCNRegPressure.cpp.
| void GCNRPTracker::reset | ( | const MachineRegisterInfo & | MRI, |
| SlotIndex | SI ) |
Resets tracker at the specified slot index SI.
Definition at line 362 of file GCNRegPressure.cpp.