LLVM 22.0.0git
|
#include "Target/AMDGPU/GCNRegPressure.h"
Public Types | |
enum | RegKind { SGPR , VGPR , AGPR , AVGPR , TOTAL_KINDS } |
Static Public Member Functions | |
static unsigned | getUnifiedVGPRNum (unsigned NumArchVGPRs, unsigned NumAGPRs, unsigned NumAVGPRs) |
Returns the aggregated VGPR pressure, assuming NumArchVGPRs ArchVGPRs NumAGPRs AGPRS, and NumAVGPRs AVGPRs for a target with a unified VGPR file. |
Friends | |
GCNRegPressure | max (const GCNRegPressure &P1, const GCNRegPressure &P2) |
Printable | print (const GCNRegPressure &RP, const GCNSubtarget *ST=nullptr, unsigned DynamicVGPRBlockSize=0) |
Definition at line 31 of file GCNRegPressure.h.
Enumerator | |
---|---|
SGPR | |
VGPR | |
AGPR | |
AVGPR | |
TOTAL_KINDS |
Definition at line 32 of file GCNRegPressure.h.
|
inline |
Definition at line 34 of file GCNRegPressure.h.
References clear().
Referenced by higherOccupancy(), less(), max, operator!=(), operator+=(), operator-=(), operator==(), and print.
|
inline |
Definition at line 42 of file GCNRegPressure.h.
Referenced by GCNRegPressure().
void GCNRegPressure::dump | ( | ) | const |
Definition at line 829 of file GCNRegPressure.cpp.
References llvm::dbgs(), and print.
|
inline |
Definition at line 38 of file GCNRegPressure.h.
References AGPR, AVGPR, SGPR, and VGPR.
Referenced by llvm::GCNIterativeScheduler::scheduleRegion().
|
inline |
Definition at line 76 of file GCNRegPressure.h.
References AGPR.
Referenced by getRegisterPressures(), and less().
|
inline |
Definition at line 74 of file GCNRegPressure.h.
Referenced by getRegisterPressures().
|
inline |
|
inline |
Definition at line 86 of file GCNRegPressure.h.
References getSGPRNum(), and getVGPRNum().
Referenced by higherOccupancy().
|
inline |
Definition at line 45 of file GCNRegPressure.h.
References SGPR.
Referenced by getOccupancy(), getRegisterPressures(), and less().
|
inline |
Definition at line 84 of file GCNRegPressure.h.
References SGPR, and TOTAL_KINDS.
Referenced by less().
|
inlinestatic |
Returns the aggregated VGPR pressure, assuming NumArchVGPRs
ArchVGPRs NumAGPRs
AGPRS, and NumAVGPRs
AVGPRs for a target with a unified VGPR file.
Definition at line 62 of file GCNRegPressure.h.
References llvm::alignTo(), and llvm::AMDGPU::IsaInfo::getArchVGPRAllocGranule().
Referenced by getVGPRNum().
UnifiedVGPRFile
Definition at line 48 of file GCNRegPressure.h.
References AGPR, AVGPR, getUnifiedVGPRNum(), and VGPR.
Referenced by getOccupancy(), and less().
|
inline |
Definition at line 80 of file GCNRegPressure.h.
References AGPR, AVGPR, TOTAL_KINDS, and VGPR.
Referenced by less().
|
inline |
Definition at line 98 of file GCNRegPressure.h.
References GCNRegPressure(), and getOccupancy().
void GCNRegPressure::inc | ( | unsigned | Reg, |
LaneBitmask | PrevMask, | ||
LaneBitmask | NewMask, | ||
const MachineRegisterInfo & | MRI ) |
Definition at line 48 of file GCNRegPressure.cpp.
References assert(), llvm::SIRegisterInfo::getNumCoveredRegs(), MRI, llvm::LaneBitmask::none(), std::swap(), TOTAL_KINDS, and TRI.
Referenced by llvm::GCNDownwardRPTracker::bumpDownwardPressure(), llvm::getRegPressure(), and llvm::GCNUpwardRPTracker::recede().
bool GCNRegPressure::less | ( | const MachineFunction & | MF, |
const GCNRegPressure & | O, | ||
unsigned | MaxOccupancy = std::numeric_limits<unsigned>::max() ) const |
Compares this
GCNRegpressure to O
, returning true if this
is less.
Since GCNRegpressure contains different types of pressures, and due to target-specific pecularities (e.g. we care about occupancy rather than raw register usage), we determine if this
GCNRegPressure is less than O
based on the following tiered comparisons (in order order of precedence):
Definition at line 99 of file GCNRegPressure.cpp.
References GCNRegPressure(), getAGPRNum(), llvm::MachineFunction::getInfo(), getSGPRNum(), getSGPRTuplesWeight(), llvm::MachineFunction::getSubtarget(), getVGPRNum(), getVGPRTuplesWeight(), and I.
|
inline |
Definition at line 123 of file GCNRegPressure.h.
References GCNRegPressure().
|
inline |
Definition at line 127 of file GCNRegPressure.h.
References GCNRegPressure(), I, and RHS.
|
inline |
Definition at line 133 of file GCNRegPressure.h.
References GCNRegPressure(), I, and RHS.
|
inline |
Definition at line 119 of file GCNRegPressure.h.
References GCNRegPressure().
|
friend |
Definition at line 158 of file GCNRegPressure.h.
References GCNRegPressure(), and I.
|
friend |
References GCNRegPressure().
Referenced by dump().