LLVM  4.0.0
Classes | Public Member Functions | Public Attributes | Friends | List of all members
llvm::SIMachineFunctionInfo Class Referencefinal

This class keeps track of the SPI_SP_INPUT_ADDR config register, which tells the hardware which interpolation parameters to load. More...

#include <SIMachineFunctionInfo.h>

Inheritance diagram for llvm::SIMachineFunctionInfo:
[legend]
Collaboration diagram for llvm::SIMachineFunctionInfo:
[legend]

Classes

struct  SpilledReg
 

Public Member Functions

 SIMachineFunctionInfo (const MachineFunction &MF)
 
SpilledReg getSpilledReg (MachineFunction *MF, unsigned FrameIndex, unsigned SubIdx)
 
bool hasCalculatedTID () const
 
unsigned getTIDReg () const
 
void setTIDReg (unsigned Reg)
 
unsigned addPrivateSegmentBuffer (const SIRegisterInfo &TRI)
 
unsigned addDispatchPtr (const SIRegisterInfo &TRI)
 
unsigned addQueuePtr (const SIRegisterInfo &TRI)
 
unsigned addKernargSegmentPtr (const SIRegisterInfo &TRI)
 
unsigned addDispatchID (const SIRegisterInfo &TRI)
 
unsigned addFlatScratchInit (const SIRegisterInfo &TRI)
 
unsigned addPrivateMemoryPtr (const SIRegisterInfo &TRI)
 
unsigned addWorkGroupIDX ()
 
unsigned addWorkGroupIDY ()
 
unsigned addWorkGroupIDZ ()
 
unsigned addWorkGroupInfo ()
 
unsigned addPrivateSegmentWaveByteOffset ()
 
void setPrivateSegmentWaveByteOffset (unsigned Reg)
 
bool hasPrivateSegmentBuffer () const
 
bool hasDispatchPtr () const
 
bool hasQueuePtr () const
 
bool hasKernargSegmentPtr () const
 
bool hasDispatchID () const
 
bool hasFlatScratchInit () const
 
bool hasGridWorkgroupCountX () const
 
bool hasGridWorkgroupCountY () const
 
bool hasGridWorkgroupCountZ () const
 
bool hasWorkGroupIDX () const
 
bool hasWorkGroupIDY () const
 
bool hasWorkGroupIDZ () const
 
bool hasWorkGroupInfo () const
 
bool hasPrivateSegmentWaveByteOffset () const
 
bool hasWorkItemIDX () const
 
bool hasWorkItemIDY () const
 
bool hasWorkItemIDZ () const
 
bool hasPrivateMemoryInputPtr () const
 
unsigned getNumUserSGPRs () const
 
unsigned getNumPreloadedSGPRs () const
 
unsigned getPrivateSegmentWaveByteOffsetSystemSGPR () const
 
unsigned getScratchRSrcReg () const
 Returns the physical register reserved for use as the resource descriptor for scratch accesses. More...
 
void setScratchRSrcReg (unsigned Reg)
 
unsigned getScratchWaveOffsetReg () const
 
void setScratchWaveOffsetReg (unsigned Reg)
 
unsigned getQueuePtrUserSGPR () const
 
unsigned getPrivateMemoryPtrUserSGPR () const
 
bool hasSpilledSGPRs () const
 
void setHasSpilledSGPRs (bool Spill=true)
 
bool hasSpilledVGPRs () const
 
void setHasSpilledVGPRs (bool Spill=true)
 
bool hasNonSpillStackObjects () const
 
void setHasNonSpillStackObjects (bool StackObject=true)
 
unsigned getNumSpilledSGPRs () const
 
unsigned getNumSpilledVGPRs () const
 
void addToSpilledSGPRs (unsigned num)
 
void addToSpilledVGPRs (unsigned num)
 
unsigned getPSInputAddr () const
 
bool isPSInputAllocated (unsigned Index) const
 
void markPSInputAllocated (unsigned Index)
 
bool returnsVoid () const
 
void setIfReturnsVoid (bool Value)
 
std::pair< unsigned, unsignedgetFlatWorkGroupSizes () const
 
unsigned getMinFlatWorkGroupSize () const
 
unsigned getMaxFlatWorkGroupSize () const
 
std::pair< unsigned, unsignedgetWavesPerEU () const
 
unsigned getMinWavesPerEU () const
 
unsigned getMaxWavesPerEU () const
 
int getDebuggerWorkGroupIDStackObjectIndex (unsigned Dim) const
 
void setDebuggerWorkGroupIDStackObjectIndex (unsigned Dim, int ObjectIdx)
 Sets stack object index for Dim's work group ID to ObjectIdx. More...
 
int getDebuggerWorkItemIDStackObjectIndex (unsigned Dim) const
 
void setDebuggerWorkItemIDStackObjectIndex (unsigned Dim, int ObjectIdx)
 Sets stack object index for Dim's work item ID to ObjectIdx. More...
 
unsigned getWorkGroupIDSGPR (unsigned Dim) const
 
unsigned getWorkItemIDVGPR (unsigned Dim) const
 
const
AMDGPUBufferPseudoSourceValue
getBufferPSV () const
 
const
AMDGPUImagePseudoSourceValue
getImagePSV () const
 
- Public Member Functions inherited from llvm::AMDGPUMachineFunction
 AMDGPUMachineFunction (const MachineFunction &MF)
 
uint64_t allocateKernArg (uint64_t Size, unsigned Align)
 
uint64_t getKernArgSize () const
 
unsigned getMaxKernArgAlign () const
 
void setABIArgOffset (unsigned NewOffset)
 
unsigned getABIArgOffset () const
 
unsigned getLDSSize () const
 
bool isKernel () const
 
unsigned allocateLDSGlobal (const DataLayout &DL, const GlobalValue &GV)
 
- Public Member Functions inherited from llvm::MachineFunctionInfo
virtual ~MachineFunctionInfo ()
 

Public Attributes

unsigned LDSWaveSpillSize
 
unsigned PSInputEna
 
std::map< unsigned, unsignedLaneVGPRs
 
unsigned ScratchOffsetReg
 
unsigned NumUserSGPRs
 
unsigned NumSystemSGPRs
 

Friends

class SIRegisterInfo
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::MachineFunctionInfo
template<typename Ty >
static Ty * create (BumpPtrAllocator &Allocator, MachineFunction &MF)
 Factory function: default behavior is to call new using the supplied allocator. More...
 

Detailed Description

This class keeps track of the SPI_SP_INPUT_ADDR config register, which tells the hardware which interpolation parameters to load.

Definition at line 76 of file SIMachineFunctionInfo.h.

Constructor & Destructor Documentation

SIMachineFunctionInfo::SIMachineFunctionInfo ( const MachineFunction MF)

Definition at line 29 of file SIMachineFunctionInfo.cpp.

Member Function Documentation

unsigned SIMachineFunctionInfo::addDispatchID ( const SIRegisterInfo TRI)

Definition at line 175 of file SIMachineFunctionInfo.cpp.

References NumUserSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

unsigned SIMachineFunctionInfo::addDispatchPtr ( const SIRegisterInfo TRI)

Definition at line 154 of file SIMachineFunctionInfo.cpp.

References NumUserSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

unsigned SIMachineFunctionInfo::addFlatScratchInit ( const SIRegisterInfo TRI)

Definition at line 182 of file SIMachineFunctionInfo.cpp.

References NumUserSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

unsigned SIMachineFunctionInfo::addKernargSegmentPtr ( const SIRegisterInfo TRI)

Definition at line 168 of file SIMachineFunctionInfo.cpp.

References NumUserSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

unsigned SIMachineFunctionInfo::addPrivateMemoryPtr ( const SIRegisterInfo TRI)

Definition at line 189 of file SIMachineFunctionInfo.cpp.

References NumUserSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

unsigned SIMachineFunctionInfo::addPrivateSegmentBuffer ( const SIRegisterInfo TRI)

Definition at line 146 of file SIMachineFunctionInfo.cpp.

References NumUserSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

unsigned llvm::SIMachineFunctionInfo::addPrivateSegmentWaveByteOffset ( )
inline

Definition at line 236 of file SIMachineFunctionInfo.h.

References NumSystemSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

unsigned SIMachineFunctionInfo::addQueuePtr ( const SIRegisterInfo TRI)

Definition at line 161 of file SIMachineFunctionInfo.cpp.

References NumUserSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

void llvm::SIMachineFunctionInfo::addToSpilledSGPRs ( unsigned  num)
inline

Definition at line 390 of file SIMachineFunctionInfo.h.

Referenced by llvm::SIRegisterInfo::spillSGPR().

void llvm::SIMachineFunctionInfo::addToSpilledVGPRs ( unsigned  num)
inline

Definition at line 394 of file SIMachineFunctionInfo.h.

Referenced by llvm::SIRegisterInfo::eliminateFrameIndex().

unsigned llvm::SIMachineFunctionInfo::addWorkGroupIDX ( )
inline

Definition at line 212 of file SIMachineFunctionInfo.h.

References NumSystemSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

unsigned llvm::SIMachineFunctionInfo::addWorkGroupIDY ( )
inline

Definition at line 218 of file SIMachineFunctionInfo.h.

References NumSystemSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

unsigned llvm::SIMachineFunctionInfo::addWorkGroupIDZ ( )
inline

Definition at line 224 of file SIMachineFunctionInfo.h.

References NumSystemSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

unsigned llvm::SIMachineFunctionInfo::addWorkGroupInfo ( )
inline

Definition at line 230 of file SIMachineFunctionInfo.h.

References NumSystemSGPRs.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

const AMDGPUBufferPseudoSourceValue* llvm::SIMachineFunctionInfo::getBufferPSV ( ) const
inline

Definition at line 506 of file SIMachineFunctionInfo.h.

int llvm::SIMachineFunctionInfo::getDebuggerWorkGroupIDStackObjectIndex ( unsigned  Dim) const
inline
Returns
Stack object index for Dim's work group ID.

Definition at line 451 of file SIMachineFunctionInfo.h.

References assert().

int llvm::SIMachineFunctionInfo::getDebuggerWorkItemIDStackObjectIndex ( unsigned  Dim) const
inline
Returns
Stack object index for Dim's work item ID.

Definition at line 463 of file SIMachineFunctionInfo.h.

References assert().

std::pair<unsigned, unsigned> llvm::SIMachineFunctionInfo::getFlatWorkGroupSizes ( ) const
inline
Returns
A pair of default/requested minimum/maximum flat work group sizes for this function.

Definition at line 420 of file SIMachineFunctionInfo.h.

const AMDGPUImagePseudoSourceValue* llvm::SIMachineFunctionInfo::getImagePSV ( ) const
inline
unsigned llvm::SIMachineFunctionInfo::getMaxFlatWorkGroupSize ( ) const
inline
Returns
Default/requested maximum flat work group size for this function.

Definition at line 430 of file SIMachineFunctionInfo.h.

Referenced by llvm::SIInstrInfo::calculateLDSSpillAddress().

unsigned llvm::SIMachineFunctionInfo::getMaxWavesPerEU ( ) const
inline
Returns
Default/requested maximum number of waves per execution unit.

Definition at line 446 of file SIMachineFunctionInfo.h.

unsigned llvm::SIMachineFunctionInfo::getMinFlatWorkGroupSize ( ) const
inline
Returns
Default/requested minimum flat work group size for this function.

Definition at line 425 of file SIMachineFunctionInfo.h.

unsigned llvm::SIMachineFunctionInfo::getMinWavesPerEU ( ) const
inline
Returns
Default/requested minimum number of waves per execution unit.

Definition at line 441 of file SIMachineFunctionInfo.h.

unsigned llvm::SIMachineFunctionInfo::getNumPreloadedSGPRs ( ) const
inline

Definition at line 322 of file SIMachineFunctionInfo.h.

References NumSystemSGPRs, and NumUserSGPRs.

unsigned llvm::SIMachineFunctionInfo::getNumSpilledSGPRs ( ) const
inline

Definition at line 382 of file SIMachineFunctionInfo.h.

unsigned llvm::SIMachineFunctionInfo::getNumSpilledVGPRs ( ) const
inline

Definition at line 386 of file SIMachineFunctionInfo.h.

unsigned llvm::SIMachineFunctionInfo::getNumUserSGPRs ( ) const
inline

Definition at line 318 of file SIMachineFunctionInfo.h.

References NumUserSGPRs.

unsigned llvm::SIMachineFunctionInfo::getPrivateMemoryPtrUserSGPR ( ) const
inline

Definition at line 354 of file SIMachineFunctionInfo.h.

unsigned llvm::SIMachineFunctionInfo::getPrivateSegmentWaveByteOffsetSystemSGPR ( ) const
inline

Definition at line 326 of file SIMachineFunctionInfo.h.

unsigned llvm::SIMachineFunctionInfo::getPSInputAddr ( ) const
inline
unsigned llvm::SIMachineFunctionInfo::getQueuePtrUserSGPR ( ) const
inline

Definition at line 350 of file SIMachineFunctionInfo.h.

unsigned llvm::SIMachineFunctionInfo::getScratchRSrcReg ( ) const
inline

Returns the physical register reserved for use as the resource descriptor for scratch accesses.

Definition at line 332 of file SIMachineFunctionInfo.h.

Referenced by llvm::SIRegisterInfo::getReservedRegs(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::SIRegisterInfo::restoreSGPR(), llvm::SIRegisterInfo::spillSGPR(), and llvm::SIInstrInfo::storeRegToStackSlot().

unsigned llvm::SIMachineFunctionInfo::getScratchWaveOffsetReg ( ) const
inline
SIMachineFunctionInfo::SpilledReg SIMachineFunctionInfo::getSpilledReg ( MachineFunction MF,
unsigned  FrameIndex,
unsigned  SubIdx 
)
unsigned llvm::SIMachineFunctionInfo::getTIDReg ( ) const
inline
std::pair<unsigned, unsigned> llvm::SIMachineFunctionInfo::getWavesPerEU ( ) const
inline
Returns
A pair of default/requested minimum/maximum number of waves per execution unit.

Definition at line 436 of file SIMachineFunctionInfo.h.

Referenced by llvm::SIRegisterInfo::getMaxNumSGPRs(), and llvm::SIRegisterInfo::getMaxNumVGPRs().

unsigned llvm::SIMachineFunctionInfo::getWorkGroupIDSGPR ( unsigned  Dim) const
inline
Returns
SGPR used for Dim's work group ID.

Definition at line 475 of file SIMachineFunctionInfo.h.

References assert(), hasWorkGroupIDX(), hasWorkGroupIDY(), hasWorkGroupIDZ(), and llvm_unreachable.

unsigned llvm::SIMachineFunctionInfo::getWorkItemIDVGPR ( unsigned  Dim) const
inline
Returns
VGPR used for Dim' work item ID.

Definition at line 491 of file SIMachineFunctionInfo.h.

References assert(), hasWorkItemIDX(), hasWorkItemIDY(), hasWorkItemIDZ(), and llvm_unreachable.

bool llvm::SIMachineFunctionInfo::hasCalculatedTID ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasDispatchID ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasDispatchPtr ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasFlatScratchInit ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasGridWorkgroupCountX ( ) const
inline

Definition at line 270 of file SIMachineFunctionInfo.h.

bool llvm::SIMachineFunctionInfo::hasGridWorkgroupCountY ( ) const
inline

Definition at line 274 of file SIMachineFunctionInfo.h.

bool llvm::SIMachineFunctionInfo::hasGridWorkgroupCountZ ( ) const
inline

Definition at line 278 of file SIMachineFunctionInfo.h.

bool llvm::SIMachineFunctionInfo::hasKernargSegmentPtr ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasNonSpillStackObjects ( ) const
inline

Definition at line 374 of file SIMachineFunctionInfo.h.

bool llvm::SIMachineFunctionInfo::hasPrivateMemoryInputPtr ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasPrivateSegmentBuffer ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasPrivateSegmentWaveByteOffset ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasQueuePtr ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasSpilledSGPRs ( ) const
inline

Definition at line 358 of file SIMachineFunctionInfo.h.

bool llvm::SIMachineFunctionInfo::hasSpilledVGPRs ( ) const
inline

Definition at line 366 of file SIMachineFunctionInfo.h.

bool llvm::SIMachineFunctionInfo::hasWorkGroupIDX ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasWorkGroupIDY ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasWorkGroupIDZ ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasWorkGroupInfo ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasWorkItemIDX ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasWorkItemIDY ( ) const
inline
bool llvm::SIMachineFunctionInfo::hasWorkItemIDZ ( ) const
inline
bool llvm::SIMachineFunctionInfo::isPSInputAllocated ( unsigned  Index) const
inline
void llvm::SIMachineFunctionInfo::markPSInputAllocated ( unsigned  Index)
inline
bool llvm::SIMachineFunctionInfo::returnsVoid ( ) const
inline

Definition at line 410 of file SIMachineFunctionInfo.h.

Referenced by llvm::SITargetLowering::LowerReturn().

void llvm::SIMachineFunctionInfo::setDebuggerWorkGroupIDStackObjectIndex ( unsigned  Dim,
int  ObjectIdx 
)
inline

Sets stack object index for Dim's work group ID to ObjectIdx.

Definition at line 457 of file SIMachineFunctionInfo.h.

References assert().

void llvm::SIMachineFunctionInfo::setDebuggerWorkItemIDStackObjectIndex ( unsigned  Dim,
int  ObjectIdx 
)
inline

Sets stack object index for Dim's work item ID to ObjectIdx.

Definition at line 469 of file SIMachineFunctionInfo.h.

References assert().

void llvm::SIMachineFunctionInfo::setHasNonSpillStackObjects ( bool  StackObject = true)
inline
void llvm::SIMachineFunctionInfo::setHasSpilledSGPRs ( bool  Spill = true)
inline

Definition at line 362 of file SIMachineFunctionInfo.h.

Referenced by llvm::SIInstrInfo::storeRegToStackSlot().

void llvm::SIMachineFunctionInfo::setHasSpilledVGPRs ( bool  Spill = true)
inline

Definition at line 370 of file SIMachineFunctionInfo.h.

Referenced by llvm::SIInstrInfo::storeRegToStackSlot().

void llvm::SIMachineFunctionInfo::setIfReturnsVoid ( bool  Value)
inline

Definition at line 414 of file SIMachineFunctionInfo.h.

Referenced by llvm::SITargetLowering::LowerReturn().

void llvm::SIMachineFunctionInfo::setPrivateSegmentWaveByteOffset ( unsigned  Reg)
inline
void llvm::SIMachineFunctionInfo::setScratchRSrcReg ( unsigned  Reg)
inline

Definition at line 336 of file SIMachineFunctionInfo.h.

References assert().

Referenced by llvm::SITargetLowering::LowerFormalArguments().

void llvm::SIMachineFunctionInfo::setScratchWaveOffsetReg ( unsigned  Reg)
inline

Definition at line 345 of file SIMachineFunctionInfo.h.

References assert().

Referenced by llvm::SITargetLowering::LowerFormalArguments().

void llvm::SIMachineFunctionInfo::setTIDReg ( unsigned  Reg)
inline

Friends And Related Function Documentation

friend class SIRegisterInfo
friend

Definition at line 78 of file SIMachineFunctionInfo.h.

Member Data Documentation

std::map<unsigned, unsigned> llvm::SIMachineFunctionInfo::LaneVGPRs

Definition at line 134 of file SIMachineFunctionInfo.h.

Referenced by getSpilledReg().

unsigned llvm::SIMachineFunctionInfo::LDSWaveSpillSize

Definition at line 132 of file SIMachineFunctionInfo.h.

unsigned llvm::SIMachineFunctionInfo::NumSystemSGPRs
unsigned llvm::SIMachineFunctionInfo::NumUserSGPRs
unsigned llvm::SIMachineFunctionInfo::PSInputEna
unsigned llvm::SIMachineFunctionInfo::ScratchOffsetReg

Definition at line 135 of file SIMachineFunctionInfo.h.


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