21 IsModuleEntryFunction(
23 NoSignedZerosFPMath(MF.getTarget().Options.NoSignedZerosFPMath) {
30 Attribute MemBoundAttr =
F.getFnAttribute(
"amdgpu-memory-bound");
34 Attribute WaveLimitAttr =
F.getFnAttribute(
"amdgpu-wave-limiter");
45 auto Entry = LocalMemoryObjects.insert(std::make_pair(&GV, 0));
47 return Entry.first->second;
57 Entry.first->second =
Offset;
A parsed version of the target data layout string in and methods for querying it.
AMDGPU specific subclass of TargetSubtarget.
This class represents lattice values for constants.
AMDGPUMachineFunction(const MachineFunction &MF)
bool isModuleEntryFunctionCC(CallingConv::ID CC)
SPIR_KERNEL - Calling convention for SPIR kernel functions.
Function & getFunction()
Return the LLVM function that this machine code represents.
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
static const AMDGPUSubtarget & get(const MachineFunction &MF)
bool isStringAttribute() const
Return true if the attribute is a string (target-dependent) attribute.
unsigned StaticLDSSize
Number of bytes in the LDS allocated statically.
static Function * getFunction(Constant *C)
MaybeAlign getAlign() const
Returns the alignment of the given variable or function.
bool isEntryFunctionCC(CallingConv::ID CC)
Align DynLDSAlign
Align for dynamic shared memory if any.
uint64_t ExplicitKernArgSize
This struct is a compact representation of a valid (non-zero power of two) alignment.
unsigned LDSSize
Number of bytes in the LDS that are being used.
static bool isZero(Value *V, const DataLayout &DL, DominatorTree *DT, AssumptionCache *AC)
uint64_t alignTo(uint64_t Size, Align A)
Returns a multiple of A needed to store Size bytes.
StringRef getValueAsString() const
Return the attribute's value as a string.
Calling convention for AMDGPU code object kernels.
Type * getValueType() const
void setDynLDSAlign(const DataLayout &DL, const GlobalVariable &GV)
unsigned allocateLDSGlobal(const DataLayout &DL, const GlobalVariable &GV)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Analyzes if a function potentially memory bound and if a kernel kernel may benefit from limiting numb...
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL