LLVM
8.0.1
|
#include "Target/AMDGPU/AMDGPUMachineFunction.h"
Public Member Functions | |
AMDGPUMachineFunction (const MachineFunction &MF) | |
uint64_t | getExplicitKernArgSize () const |
unsigned | getMaxKernArgAlign () const |
unsigned | getLDSSize () const |
bool | isEntryFunction () const |
bool | hasNoSignedZerosFPMath () const |
bool | isMemoryBound () const |
bool | needsWaveLimiter () const |
unsigned | allocateLDSGlobal (const DataLayout &DL, const GlobalValue &GV) |
Public Member Functions inherited from llvm::MachineFunctionInfo | |
virtual | ~MachineFunctionInfo () |
Protected Attributes | |
uint64_t | ExplicitKernArgSize |
unsigned | MaxKernArgAlign |
unsigned | LDSSize |
Number of bytes in the LDS that are being used. More... | |
bool | IsEntryFunction |
bool | NoSignedZerosFPMath |
bool | MemoryBound |
bool | WaveLimiter |
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... | |
Definition at line 20 of file AMDGPUMachineFunction.h.
AMDGPUMachineFunction::AMDGPUMachineFunction | ( | const MachineFunction & | MF | ) |
Definition at line 17 of file AMDGPUMachineFunction.cpp.
References llvm::CallingConv::AMDGPU_KERNEL, llvm::AMDGPUPerfHintAnalysisID, ExplicitKernArgSize, F(), llvm::AMDGPUSubtarget::get(), llvm::Function::getCallingConv(), llvm::AMDGPUSubtarget::getExplicitKernArgSize(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getMMI(), llvm::Pass::getResolver(), MaxKernArgAlign, MemoryBound, llvm::CallingConv::SPIR_KERNEL, llvm::ARM_MB::ST, and WaveLimiter.
unsigned AMDGPUMachineFunction::allocateLDSGlobal | ( | const DataLayout & | DL, |
const GlobalValue & | GV | ||
) |
TODO: We should sort these to minimize wasted space due to alignment padding. Currently the padding is decided by the first encountered use during lowering.
Definition at line 46 of file AMDGPUMachineFunction.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, llvm::alignTo(), llvm::DataLayout::getABITypeAlignment(), llvm::GlobalValue::getAlignment(), llvm::DataLayout::getTypeAllocSize(), llvm::GlobalValue::getValueType(), and LDSSize.
Referenced by llvm::AMDGPUTargetLowering::LowerGlobalAddress(), and needsWaveLimiter().
|
inline |
Definition at line 47 of file AMDGPUMachineFunction.h.
References ExplicitKernArgSize.
Referenced by llvm::AMDGPUTargetLowering::getImplicitParameterOffset().
|
inline |
Definition at line 55 of file AMDGPUMachineFunction.h.
References LDSSize.
Referenced by llvm::SIInstrInfo::calculateLDSSpillAddress(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::R600AsmPrinter::getPassName(), and llvm::SIMachineFunctionInfo::limitOccupancy().
|
inline |
Definition at line 51 of file AMDGPUMachineFunction.h.
References MaxKernArgAlign.
|
inline |
Definition at line 63 of file AMDGPUMachineFunction.h.
References NoSignedZerosFPMath.
Referenced by getOModValue().
|
inline |
Definition at line 59 of file AMDGPUMachineFunction.h.
References IsEntryFunction.
Referenced by llvm::SIMachineFunctionInfo::allocateSGPRSpillToVGPR(), llvm::SIFrameLowering::emitEpilogue(), llvm::AMDGPUAsmPrinter::EmitFunctionBodyEnd(), llvm::AMDGPUAsmPrinter::EmitFunctionBodyStart(), llvm::AMDGPUAsmPrinter::EmitFunctionEntryLabel(), llvm::SIFrameLowering::emitPrologue(), llvm::SITargetLowering::finalizeLowering(), llvm::SIInstrInfo::insertReturn(), llvm::SITargetLowering::LowerCall(), llvm::AMDGPUTargetLowering::LowerGlobalAddress(), llvm::SITargetLowering::LowerReturn(), parseTexFail(), llvm::SIRegisterInfo::requiresFrameIndexScavenging(), llvm::SIRegisterInfo::requiresRegisterScavenging(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::SIMachineFunctionInfo::SIMachineFunctionInfo(), and llvm::SITargetLowering::supportSplitCSR().
|
inline |
Definition at line 67 of file AMDGPUMachineFunction.h.
References MemoryBound.
Referenced by llvm::AMDGPUAsmPrinter::doFinalization().
|
inline |
Definition at line 71 of file AMDGPUMachineFunction.h.
References allocateLDSGlobal(), and WaveLimiter.
Referenced by llvm::AMDGPUAsmPrinter::runOnMachineFunction().
|
protected |
Definition at line 26 of file AMDGPUMachineFunction.h.
Referenced by AMDGPUMachineFunction(), and getExplicitKernArgSize().
|
protected |
Definition at line 34 of file AMDGPUMachineFunction.h.
Referenced by isEntryFunction().
|
protected |
Number of bytes in the LDS that are being used.
Definition at line 30 of file AMDGPUMachineFunction.h.
Referenced by allocateLDSGlobal(), and getLDSSize().
|
protected |
Definition at line 27 of file AMDGPUMachineFunction.h.
Referenced by AMDGPUMachineFunction(), getMaxKernArgAlign(), and llvm::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
protected |
Definition at line 39 of file AMDGPUMachineFunction.h.
Referenced by AMDGPUMachineFunction(), and isMemoryBound().
|
protected |
Definition at line 36 of file AMDGPUMachineFunction.h.
Referenced by hasNoSignedZerosFPMath().
|
protected |
Definition at line 42 of file AMDGPUMachineFunction.h.
Referenced by AMDGPUMachineFunction(), and needsWaveLimiter().