LLVM 22.0.0git
|
Models a register pressure target, allowing to evaluate and track register savings against that target from a starting GCNRegPressure. More...
#include "Target/AMDGPU/GCNRegPressure.h"
Public Member Functions | |
GCNRPTarget (const MachineFunction &MF, const GCNRegPressure &RP) | |
Sets up the target such that the register pressure starting at RP does not show register spilling on function MF (w.r.t. | |
GCNRPTarget (unsigned NumSGPRs, unsigned NumVGPRs, const MachineFunction &MF, const GCNRegPressure &RP) | |
Sets up the target such that the register pressure starting at RP does not use more than NumSGPRs SGPRs and NumVGPRs VGPRs on function MF . | |
GCNRPTarget (unsigned Occupancy, const MachineFunction &MF, const GCNRegPressure &RP) | |
Sets up the target such that the register pressure starting at RP does not prevent achieving an occupancy of at least Occupancy on function MF . | |
void | setTarget (unsigned NumSGPRs, unsigned NumVGPRs) |
Changes the target (same semantics as constructor). | |
const GCNRegPressure & | getCurrentRP () const |
void | setRP (const GCNRegPressure &NewRP) |
bool | isSaveBeneficial (Register Reg) const |
Determines whether saving virtual register Reg will be beneficial towards achieving the RP target. | |
void | saveReg (Register Reg, LaneBitmask Mask, const MachineRegisterInfo &MRI) |
Saves virtual register Reg with lanemask Mask . | |
bool | satisfied () const |
Whether the current RP is at or below the defined pressure target. |
Friends | |
raw_ostream & | operator<< (raw_ostream &OS, const GCNRPTarget &Target) |
Models a register pressure target, allowing to evaluate and track register savings against that target from a starting GCNRegPressure.
Definition at line 184 of file GCNRegPressure.h.
GCNRPTarget::GCNRPTarget | ( | const MachineFunction & | MF, |
const GCNRegPressure & | RP ) |
Sets up the target such that the register pressure starting at RP
does not show register spilling on function MF
(w.r.t.
the function's mininum target occupancy).
Definition at line 371 of file GCNRegPressure.cpp.
References F, GCNRPTarget(), and setTarget().
Referenced by GCNRPTarget(), GCNRPTarget(), GCNRPTarget(), and operator<<.
GCNRPTarget::GCNRPTarget | ( | unsigned | NumSGPRs, |
unsigned | NumVGPRs, | ||
const MachineFunction & | MF, | ||
const GCNRegPressure & | RP ) |
Sets up the target such that the register pressure starting at RP
does not use more than NumSGPRs
SGPRs and NumVGPRs
VGPRs on function MF
.
Definition at line 378 of file GCNRegPressure.cpp.
References GCNRPTarget(), and setTarget().
GCNRPTarget::GCNRPTarget | ( | unsigned | Occupancy, |
const MachineFunction & | MF, | ||
const GCNRegPressure & | RP ) |
Sets up the target such that the register pressure starting at RP
does not prevent achieving an occupancy of at least Occupancy
on function MF
.
Definition at line 384 of file GCNRegPressure.cpp.
References GCNRPTarget(), llvm::SIMachineFunctionInfo::getDynamicVGPRBlockSize(), and setTarget().
|
inline |
Definition at line 206 of file GCNRegPressure.h.
Determines whether saving virtual register Reg
will be beneficial towards achieving the RP target.
Definition at line 408 of file GCNRegPressure.cpp.
References llvm::SIRegisterInfo::isAGPRClass(), llvm::SIRegisterInfo::isSGPRClass(), MRI, and TRI.
bool GCNRPTarget::satisfied | ( | ) | const |
Whether the current RP is at or below the defined pressure target.
Definition at line 425 of file GCNRegPressure.cpp.
|
inline |
Saves virtual register Reg
with lanemask Mask
.
Definition at line 215 of file GCNRegPressure.h.
References llvm::LaneBitmask::getNone(), MRI, and Reg.
|
inline |
Definition at line 208 of file GCNRegPressure.h.
Changes the target (same semantics as constructor).
Definition at line 394 of file GCNRegPressure.cpp.
Referenced by GCNRPTarget(), GCNRPTarget(), and GCNRPTarget().
|
friend |
Definition at line 223 of file GCNRegPressure.h.
References GCNRPTarget().