Go to the documentation of this file.
14 #ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUSUBTARGET_H
15 #define LLVM_LIB_TARGET_AMDGPU_AMDGPUSUBTARGET_H
26 class MachineFunction;
105 std::pair<unsigned, unsigned>
107 std::pair<unsigned, unsigned> FlatWorkGroupSizes)
const;
219 switch (TargetTriple.
getOS()) {
279 #endif // LLVM_LIB_TARGET_AMDGPU_AMDGPUSUBTARGET_H
Align getAlignmentForImplicitArgPtr() const
bool hasInv2PiInlineImm() const
This is an optimization pass for GlobalISel generic memory operations.
bool hasMadMixInsts() const
virtual unsigned getMinWavesPerEU() const =0
Triple - Helper class for working with autoconf configuration names.
unsigned getOccupancyWithLocalMemSize(uint32_t Bytes, const Function &) const
Inverse of getMaxLocalMemWithWaveCount.
unsigned getMaxWavesPerEU() const
virtual unsigned getMaxFlatWorkGroupSize() const =0
unsigned getKernArgSegmentSize(const Function &F, Align &MaxAlign) const
static const AMDGPUSubtarget & get(const MachineFunction &MF)
unsigned getImplicitArgNumBytes(const Function &F) const
virtual unsigned getWavesPerEUForWorkGroup(unsigned FlatWorkGroupSize) const =0
bool isMesaKernel(const Function &F) const
unsigned getMaxWorkitemID(const Function &Kernel, unsigned Dimension) const
Return the maximum workitem ID value in the function, for the given (0, 1, 2) dimension.
bool has16BitInsts() const
This struct is a compact representation of a valid (non-zero power of two) alignment.
ArchType getArch() const
Get the parsed architecture type of this triple.
unsigned getLocalMemorySize() const
virtual ~AMDGPUSubtarget()=default
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
AMDGPUSubtarget(const Triple &TT)
unsigned getWavefrontSize() const
bool makeLIDRangeMetadata(Instruction *I) const
Creates value range metadata on an workitemid.* intrinsic call or load.
OSType getOS() const
Get the parsed operating system type of this triple.
bool hasMadMacF32Insts() const
Primary interface to the complete machine description for the target machine.
unsigned getMaxLocalMemSizeWithWaveCount(unsigned WaveCount, const Function &) const
Return the amount of LDS that can be used that will not restrict the occupancy lower than WaveCount.
bool hasFminFmaxLegacy() const
unsigned getExplicitKernelArgOffset(const Function &F) const
Returns the offset in bytes from the start of the input buffer of the first explicit kernel argument.
virtual unsigned getMinFlatWorkGroupSize() const =0
bool hasTrigReducedRange() const
bool hasVOP3PInsts() const
AMDGPUDwarfFlavour getAMDGPUDwarfFlavour() const
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
bool isGCN3Encoding() const
bool hasDsSrc2Insts() const
virtual unsigned getMaxWorkGroupsPerCU(unsigned FlatWorkGroupSize) const =0
uint64_t getExplicitKernArgSize(const Function &F, Align &MaxAlign) const
bool hasTrue16BitInsts() const
std::pair< unsigned, unsigned > getDefaultFlatWorkGroupSize(CallingConv::ID CC) const
const char LLVMTargetMachineRef TM
std::pair< unsigned, unsigned > getFlatWorkGroupSizes(const Function &F) const
bool isPromoteAllocaEnabled() const
std::pair< unsigned, unsigned > getWavesPerEU(const Function &F) const
unsigned getWavefrontSizeLog2() const
bool isAmdHsaOrMesa(const Function &F) const