LLVM  8.0.0svn
Public Member Functions | List of all members
llvm::R600Subtarget Class Referencefinal

#include "Target/AMDGPU/AMDGPUSubtarget.h"

Inheritance diagram for llvm::R600Subtarget:
Inheritance graph
[legend]
Collaboration diagram for llvm::R600Subtarget:
Collaboration graph
[legend]

Public Member Functions

 R600Subtarget (const Triple &TT, StringRef CPU, StringRef FS, const TargetMachine &TM)
 
const R600InstrInfogetInstrInfo () const override
 
const R600FrameLoweringgetFrameLowering () const override
 
const R600TargetLoweringgetTargetLowering () const override
 
const R600RegisterInfogetRegisterInfo () const override
 
const InstrItineraryDatagetInstrItineraryData () const override
 
const SelectionDAGTargetInfogetSelectionDAGInfo () const override
 
void ParseSubtargetFeatures (StringRef CPU, StringRef FS)
 
Generation getGeneration () const
 
unsigned getStackAlignment () const
 
R600SubtargetinitializeSubtargetDependencies (const Triple &TT, StringRef GPU, StringRef FS)
 
bool hasBFE () const
 
bool hasBFI () const
 
bool hasBCNT (unsigned Size) const
 
bool hasBORROW () const
 
bool hasCARRY () const
 
bool hasCaymanISA () const
 
bool hasFFBL () const
 
bool hasFFBH () const
 
bool hasFMA () const
 
bool hasCFAluBug () const
 
bool hasVertexCache () const
 
short getTexVTXClauseSize () const
 
bool enableMachineScheduler () const override
 
bool enableSubRegLiveness () const override
 
unsigned getMaxWorkGroupsPerCU (unsigned FlatWorkGroupSize) const override
 
unsigned getMinFlatWorkGroupSize () const override
 
unsigned getMaxFlatWorkGroupSize () const override
 
unsigned getMaxWavesPerEU (unsigned FlatWorkGroupSize) const override
 
unsigned getMinWavesPerEU () const override
 
- Public Member Functions inherited from llvm::AMDGPUSubtarget
 AMDGPUSubtarget (const Triple &TT)
 
std::pair< unsigned, unsignedgetDefaultFlatWorkGroupSize (CallingConv::ID CC) const
 
std::pair< unsigned, unsignedgetFlatWorkGroupSizes (const Function &F) const
 
std::pair< unsigned, unsignedgetWavesPerEU (const Function &F) const
 
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. More...
 
unsigned getOccupancyWithLocalMemSize (uint32_t Bytes, const Function &) const
 Inverse of getMaxLocalMemWithWaveCount. More...
 
unsigned getOccupancyWithLocalMemSize (const MachineFunction &MF) const
 
bool isAmdHsaOS () const
 
bool isAmdPalOS () const
 
bool isMesa3DOS () const
 
bool isMesaKernel (const Function &F) const
 
bool isAmdCodeObjectV2 (const Function &F) const
 
bool has16BitInsts () const
 
bool hasMadMixInsts () const
 
bool hasFP32Denormals () const
 
bool hasFPExceptions () const
 
bool hasSDWA () const
 
bool hasVOP3PInsts () const
 
bool hasMulI24 () const
 
bool hasMulU24 () const
 
bool hasInv2PiInlineImm () const
 
bool hasFminFmaxLegacy () const
 
bool hasTrigReducedRange () const
 
bool isPromoteAllocaEnabled () const
 
unsigned getWavefrontSize () const
 
int getLocalMemorySize () const
 
unsigned getAlignmentForImplicitArgPtr () 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. More...
 
unsigned getMaxWavesPerEU () const
 
bool makeLIDRangeMetadata (Instruction *I) const
 Creates value range metadata on an workitemid.* inrinsic call or load. More...
 
unsigned getImplicitArgNumBytes (const Function &F) const
 
uint64_t getExplicitKernArgSize (const Function &F, unsigned &MaxAlign) const
 
unsigned getKernArgSegmentSize (const Function &F, unsigned &MaxAlign) const
 
virtual ~AMDGPUSubtarget ()
 

Additional Inherited Members

- Public Types inherited from llvm::AMDGPUSubtarget
enum  Generation {
  R600 = 0, R700 = 1, EVERGREEN = 2, NORTHERN_ISLANDS = 3,
  SOUTHERN_ISLANDS = 4, SEA_ISLANDS = 5, VOLCANIC_ISLANDS = 6, GFX9 = 7
}
 
- Static Public Member Functions inherited from llvm::AMDGPUSubtarget
static const AMDGPUSubtargetget (const MachineFunction &MF)
 
static const AMDGPUSubtargetget (const TargetMachine &TM, const Function &F)
 
- Protected Attributes inherited from llvm::AMDGPUSubtarget
bool Has16BitInsts
 
bool HasMadMixInsts
 
bool FP32Denormals
 
bool FPExceptions
 
bool HasSDWA
 
bool HasVOP3PInsts
 
bool HasMulI24
 
bool HasMulU24
 
bool HasInv2PiInlineImm
 
bool HasFminFmaxLegacy
 
bool EnablePromoteAlloca
 
bool HasTrigReducedRange
 
int LocalMemorySize
 
unsigned WavefrontSize
 

Detailed Description

Definition at line 969 of file AMDGPUSubtarget.h.

Constructor & Destructor Documentation

◆ R600Subtarget()

R600Subtarget::R600Subtarget ( const Triple TT,
StringRef  CPU,
StringRef  FS,
const TargetMachine TM 
)

Definition at line 448 of file AMDGPUSubtarget.cpp.

Member Function Documentation

◆ enableMachineScheduler()

bool llvm::R600Subtarget::enableMachineScheduler ( ) const
inlineoverride

Definition at line 1070 of file AMDGPUSubtarget.h.

◆ enableSubRegLiveness()

bool llvm::R600Subtarget::enableSubRegLiveness ( ) const
inlineoverride

Definition at line 1074 of file AMDGPUSubtarget.h.

◆ getFrameLowering()

const R600FrameLowering* llvm::R600Subtarget::getFrameLowering ( ) const
inlineoverride

◆ getGeneration()

Generation llvm::R600Subtarget::getGeneration ( ) const
inline

◆ getInstrInfo()

const R600InstrInfo* llvm::R600Subtarget::getInstrInfo ( ) const
inlineoverride

◆ getInstrItineraryData()

const InstrItineraryData* llvm::R600Subtarget::getInstrItineraryData ( ) const
inlineoverride

Definition at line 1005 of file AMDGPUSubtarget.h.

◆ getMaxFlatWorkGroupSize()

unsigned llvm::R600Subtarget::getMaxFlatWorkGroupSize ( ) const
inlineoverridevirtual
Returns
Maximum flat work group size supported by the subtarget.

Implements llvm::AMDGPUSubtarget.

Definition at line 1090 of file AMDGPUSubtarget.h.

References llvm::AMDGPU::IsaInfo::getMaxFlatWorkGroupSize().

◆ getMaxWavesPerEU()

unsigned llvm::R600Subtarget::getMaxWavesPerEU ( unsigned  FlatWorkGroupSize) const
inlineoverridevirtual
Returns
Maximum number of waves per execution unit supported by the subtarget and limited by given FlatWorkGroupSize.

Implements llvm::AMDGPUSubtarget.

Definition at line 1096 of file AMDGPUSubtarget.h.

References llvm::AMDGPU::IsaInfo::getMaxWavesPerEU().

◆ getMaxWorkGroupsPerCU()

unsigned llvm::R600Subtarget::getMaxWorkGroupsPerCU ( unsigned  FlatWorkGroupSize) const
inlineoverridevirtual
Returns
Maximum number of work groups per compute unit supported by the subtarget and limited by given FlatWorkGroupSize.

Implements llvm::AMDGPUSubtarget.

Definition at line 1080 of file AMDGPUSubtarget.h.

References llvm::AMDGPU::IsaInfo::getMaxWorkGroupsPerCU().

◆ getMinFlatWorkGroupSize()

unsigned llvm::R600Subtarget::getMinFlatWorkGroupSize ( ) const
inlineoverridevirtual
Returns
Minimum flat work group size supported by the subtarget.

Implements llvm::AMDGPUSubtarget.

Definition at line 1085 of file AMDGPUSubtarget.h.

References llvm::AMDGPU::IsaInfo::getMinFlatWorkGroupSize().

◆ getMinWavesPerEU()

unsigned llvm::R600Subtarget::getMinWavesPerEU ( ) const
inlineoverridevirtual
Returns
Minimum number of waves per execution unit supported by the subtarget.

Implements llvm::AMDGPUSubtarget.

Definition at line 1102 of file AMDGPUSubtarget.h.

References llvm::AMDGPU::IsaInfo::getMinWavesPerEU().

◆ getRegisterInfo()

const R600RegisterInfo* llvm::R600Subtarget::getRegisterInfo ( ) const
inlineoverride

◆ getSelectionDAGInfo()

const SelectionDAGTargetInfo* llvm::R600Subtarget::getSelectionDAGInfo ( ) const
inlineoverride

Definition at line 1010 of file AMDGPUSubtarget.h.

◆ getStackAlignment()

unsigned llvm::R600Subtarget::getStackAlignment ( ) const
inline

Definition at line 1020 of file AMDGPUSubtarget.h.

◆ getTargetLowering()

const R600TargetLowering* llvm::R600Subtarget::getTargetLowering ( ) const
inlineoverride

Definition at line 997 of file AMDGPUSubtarget.h.

◆ getTexVTXClauseSize()

short llvm::R600Subtarget::getTexVTXClauseSize ( ) const
inline

Definition at line 1068 of file AMDGPUSubtarget.h.

Referenced by llvm::R600SchedStrategy::initialize().

◆ hasBCNT()

bool llvm::R600Subtarget::hasBCNT ( unsigned  Size) const
inline

◆ hasBFE()

bool llvm::R600Subtarget::hasBFE ( ) const
inline

◆ hasBFI()

bool llvm::R600Subtarget::hasBFI ( ) const
inline

◆ hasBORROW()

bool llvm::R600Subtarget::hasBORROW ( ) const
inline

◆ hasCARRY()

bool llvm::R600Subtarget::hasCARRY ( ) const
inline

◆ hasCaymanISA()

bool llvm::R600Subtarget::hasCaymanISA ( ) const
inline

◆ hasCFAluBug()

bool llvm::R600Subtarget::hasCFAluBug ( ) const
inline

Definition at line 1064 of file AMDGPUSubtarget.h.

◆ hasFFBH()

bool llvm::R600Subtarget::hasFFBH ( ) const
inline

◆ hasFFBL()

bool llvm::R600Subtarget::hasFFBL ( ) const
inline

◆ hasFMA()

bool llvm::R600Subtarget::hasFMA ( ) const
inline

Definition at line 1062 of file AMDGPUSubtarget.h.

References llvm::ISD::FMA.

Referenced by llvm::R600TargetLowering::R600TargetLowering().

◆ hasVertexCache()

bool llvm::R600Subtarget::hasVertexCache ( ) const
inline

◆ initializeSubtargetDependencies()

R600Subtarget & R600Subtarget::initializeSubtargetDependencies ( const Triple TT,
StringRef  GPU,
StringRef  FS 
)

◆ ParseSubtargetFeatures()

void llvm::R600Subtarget::ParseSubtargetFeatures ( StringRef  CPU,
StringRef  FS 
)

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