LLVM  4.0.0
Public Types | Public Member Functions | List of all members
llvm::SISubtarget Class Referencefinal

#include <AMDGPUSubtarget.h>

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

Public Types

enum  { FIXED_SGPR_COUNT_FOR_INIT_BUG = 96 }
 
- Public Types inherited from llvm::AMDGPUSubtarget
enum  Generation {
  R600 = 0, R700, EVERGREEN, NORTHERN_ISLANDS,
  SOUTHERN_ISLANDS, SEA_ISLANDS, VOLCANIC_ISLANDS
}
 
enum  {
  ISAVersion0_0_0, ISAVersion7_0_0, ISAVersion7_0_1, ISAVersion7_0_2,
  ISAVersion8_0_0, ISAVersion8_0_1, ISAVersion8_0_2, ISAVersion8_0_3,
  ISAVersion8_0_4, ISAVersion8_1_0
}
 

Public Member Functions

 SISubtarget (const Triple &TT, StringRef CPU, StringRef FS, const TargetMachine &TM)
 
const SIInstrInfogetInstrInfo () const override
 
const SIFrameLoweringgetFrameLowering () const override
 
const SITargetLoweringgetTargetLowering () const override
 
const CallLoweringgetCallLowering () const override
 
const SIRegisterInfogetRegisterInfo () const override
 
void setGISelAccessor (GISelAccessor &GISel)
 
void overrideSchedPolicy (MachineSchedPolicy &Policy, unsigned NumRegionInstrs) const override
 
bool isVGPRSpillingEnabled (const Function &F) const
 
unsigned getMaxNumUserSGPRs () const
 
bool hasFlatAddressSpace () const
 
bool hasSMemRealTime () const
 
bool hasMovrel () const
 
bool hasVGPRIndexMode () const
 
bool hasScalarCompareEq64 () const
 
bool hasScalarStores () const
 
bool hasInv2PiInlineImm () const
 
bool enableSIScheduler () const
 
bool debuggerSupported () const
 
bool debuggerInsertNops () const
 
bool debuggerReserveRegs () const
 
bool debuggerEmitPrologue () const
 
bool loadStoreOptEnabled () const
 
bool hasSGPRInitBug () const
 
bool has12DWordStoreHazard () const
 
unsigned getKernArgSegmentSize (const MachineFunction &MF, unsigned ExplictArgBytes) const
 
unsigned getOccupancyWithNumSGPRs (unsigned SGPRs) const
 Return the maximum number of waves per SIMD for kernels using SGPRs SGPRs. More...
 
unsigned getOccupancyWithNumVGPRs (unsigned VGPRs) const
 Return the maximum number of waves per SIMD for kernels using VGPRs VGPRs. More...
 
bool needWaitcntBeforeBarrier () const
 
unsigned getMaxNumSGPRs () const
 
- Public Member Functions inherited from llvm::AMDGPUSubtarget
 AMDGPUSubtarget (const Triple &TT, StringRef GPU, StringRef FS, const TargetMachine &TM)
 
 ~AMDGPUSubtarget () override
 
AMDGPUSubtargetinitializeSubtargetDependencies (const Triple &TT, StringRef GPU, StringRef FS)
 
const InstrItineraryDatagetInstrItineraryData () const override
 
const SelectionDAGTargetInfogetSelectionDAGInfo () const override
 
void ParseSubtargetFeatures (StringRef CPU, StringRef FS)
 
bool isAmdHsaOS () const
 
bool isMesa3DOS () const
 
bool isOpenCLEnv () const
 
Generation getGeneration () const
 
unsigned getWavefrontSize () const
 
int getLocalMemorySize () const
 
int getLDSBankCount () const
 
unsigned getMaxPrivateElementSize () const
 
bool has16BitInsts () const
 
bool hasHWFP64 () const
 
bool hasFastFMAF32 () const
 
bool hasHalfRate64Ops () const
 
bool hasAddr64 () const
 
bool hasBFE () const
 
bool hasBFI () const
 
bool hasBFM () const
 
bool hasBCNT (unsigned Size) const
 
bool hasMulU24 () const
 
bool hasMulI24 () const
 
bool hasFFBL () const
 
bool hasFFBH () const
 
bool hasCARRY () const
 
bool hasBORROW () const
 
bool hasCaymanISA () const
 
bool isPromoteAllocaEnabled () const
 
bool unsafeDSOffsetFoldingEnabled () const
 
bool dumpCode () const
 
bool enableIEEEBit (const MachineFunction &MF) const
 
unsigned getMaxLocalMemSizeWithWaveCount (unsigned WaveCount) 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
 Inverse of getMaxLocalMemWithWaveCount. More...
 
bool hasFP16Denormals () const
 
bool hasFP32Denormals () const
 
bool hasFP64Denormals () const
 
bool hasFPExceptions () const
 
bool useFlatForGlobal () const
 
bool hasUnalignedBufferAccess () const
 
bool hasUnalignedScratchAccess () const
 
bool isXNACKEnabled () const
 
bool isMesaKernel (const MachineFunction &MF) const
 
bool isMesaGfxShader (const MachineFunction &MF) const
 
bool isAmdCodeObjectV2 (const MachineFunction &MF) const
 
unsigned getExplicitKernelArgOffset (const MachineFunction &MF) const
 Returns the offset in bytes from the start of the input buffer of the first explicit kernel argument. More...
 
unsigned getAlignmentForImplicitArgPtr () const
 
unsigned getImplicitArgNumBytes (const MachineFunction &MF) const
 
unsigned getStackAlignment () const
 
bool enableMachineScheduler () const override
 
bool enableSubRegLiveness () const override
 
unsigned getEUsPerCU () const
 
unsigned getMaxWorkGroupsPerCU (unsigned FlatWorkGroupSize) const
 
unsigned getMaxWavesPerCU () const
 
unsigned getMaxWavesPerCU (unsigned FlatWorkGroupSize) const
 
unsigned getMinWavesPerEU () const
 
unsigned getMaxWavesPerEU () const
 
unsigned getMaxWavesPerEU (unsigned FlatWorkGroupSize) const
 
unsigned getMinFlatWorkGroupSize () const
 
unsigned getMaxFlatWorkGroupSize () const
 
unsigned getWavesPerWorkGroup (unsigned FlatWorkGroupSize) const
 
void setScalarizeGlobalBehavior (bool b)
 
bool getScalarizeGlobalBehavior () const
 
std::pair< unsigned, unsignedgetFlatWorkGroupSizes (const Function &F) const
 
std::pair< unsigned, unsignedgetWavesPerEU (const Function &F) const
 

Additional Inherited Members

- Protected Attributes inherited from llvm::AMDGPUSubtarget
Triple TargetTriple
 
Generation Gen
 
unsigned IsaVersion
 
unsigned WavefrontSize
 
int LocalMemorySize
 
int LDSBankCount
 
unsigned MaxPrivateElementSize
 
bool FastFMAF32
 
bool HalfRate64Ops
 
bool FP16Denormals
 
bool FP32Denormals
 
bool FP64Denormals
 
bool FPExceptions
 
bool FlatForGlobal
 
bool UnalignedScratchAccess
 
bool UnalignedBufferAccess
 
bool EnableXNACK
 
bool DebuggerInsertNops
 
bool DebuggerReserveRegs
 
bool DebuggerEmitPrologue
 
bool EnableVGPRSpilling
 
bool EnablePromoteAlloca
 
bool EnableLoadStoreOpt
 
bool EnableUnsafeDSOffsetFolding
 
bool EnableSIScheduler
 
bool DumpCode
 
bool FP64
 
bool IsGCN
 
bool GCN1Encoding
 
bool GCN3Encoding
 
bool CIInsts
 
bool SGPRInitBug
 
bool HasSMemRealTime
 
bool Has16BitInsts
 
bool HasMovrel
 
bool HasVGPRIndexMode
 
bool HasScalarStores
 
bool HasInv2PiInlineImm
 
bool FlatAddressSpace
 
bool R600ALUInst
 
bool CaymanISA
 
bool CFALUBug
 
bool HasVertexCache
 
short TexVTXClauseSize
 
bool ScalarizeGlobal
 
bool FeatureDisable
 
InstrItineraryData InstrItins
 
SelectionDAGTargetInfo TSInfo
 

Detailed Description

Definition at line 484 of file AMDGPUSubtarget.h.

Member Enumeration Documentation

anonymous enum
Enumerator
FIXED_SGPR_COUNT_FOR_INIT_BUG 

Definition at line 486 of file AMDGPUSubtarget.h.

Constructor & Destructor Documentation

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

Definition at line 279 of file AMDGPUSubtarget.cpp.

Member Function Documentation

bool llvm::SISubtarget::debuggerEmitPrologue ( ) const
inline
bool llvm::SISubtarget::debuggerInsertNops ( ) const
inline

Definition at line 573 of file AMDGPUSubtarget.h.

References llvm::AMDGPUSubtarget::DebuggerInsertNops.

Referenced by debuggerSupported().

bool llvm::SISubtarget::debuggerReserveRegs ( ) const
inline
bool llvm::SISubtarget::debuggerSupported ( ) const
inline
bool llvm::SISubtarget::enableSIScheduler ( ) const
inline

Definition at line 564 of file AMDGPUSubtarget.h.

References llvm::AMDGPUSubtarget::EnableSIScheduler.

Referenced by overrideSchedPolicy().

const CallLowering* llvm::SISubtarget::getCallLowering ( ) const
inlineoverride

Definition at line 514 of file AMDGPUSubtarget.h.

References assert().

const SIFrameLowering* llvm::SISubtarget::getFrameLowering ( ) const
inlineoverridevirtual

Implements llvm::AMDGPUSubtarget.

Definition at line 506 of file AMDGPUSubtarget.h.

const SIInstrInfo* llvm::SISubtarget::getInstrInfo ( ) const
inlineoverridevirtual
unsigned SISubtarget::getKernArgSegmentSize ( const MachineFunction MF,
unsigned  ExplictArgBytes 
) const
unsigned SISubtarget::getMaxNumSGPRs ( ) const
unsigned llvm::SISubtarget::getMaxNumUserSGPRs ( ) const
inline

Definition at line 532 of file AMDGPUSubtarget.h.

unsigned SISubtarget::getOccupancyWithNumSGPRs ( unsigned  SGPRs) const

Return the maximum number of waves per SIMD for kernels using SGPRs SGPRs.

Definition at line 317 of file AMDGPUSubtarget.cpp.

References llvm::AMDGPUSubtarget::getGeneration(), and llvm::AMDGPUSubtarget::VOLCANIC_ISLANDS.

Referenced by getMaxWaves().

unsigned SISubtarget::getOccupancyWithNumVGPRs ( unsigned  VGPRs) const

Return the maximum number of waves per SIMD for kernels using VGPRs VGPRs.

Definition at line 340 of file AMDGPUSubtarget.cpp.

Referenced by getMaxWaves().

const SIRegisterInfo* llvm::SISubtarget::getRegisterInfo ( ) const
inlineoverridevirtual
const SITargetLowering* llvm::SISubtarget::getTargetLowering ( ) const
inlineoverridevirtual

Implements llvm::AMDGPUSubtarget.

Definition at line 510 of file AMDGPUSubtarget.h.

bool llvm::SISubtarget::has12DWordStoreHazard ( ) const
inline
bool llvm::SISubtarget::hasFlatAddressSpace ( ) const
inline

Definition at line 536 of file AMDGPUSubtarget.h.

References llvm::AMDGPUSubtarget::FlatAddressSpace.

bool llvm::SISubtarget::hasInv2PiInlineImm ( ) const
inline
bool llvm::SISubtarget::hasMovrel ( ) const
inline

Definition at line 544 of file AMDGPUSubtarget.h.

References llvm::AMDGPUSubtarget::HasMovrel.

bool llvm::SISubtarget::hasScalarCompareEq64 ( ) const
inline
bool llvm::SISubtarget::hasScalarStores ( ) const
inline
bool llvm::SISubtarget::hasSGPRInitBug ( ) const
inline
bool llvm::SISubtarget::hasSMemRealTime ( ) const
inline

Definition at line 540 of file AMDGPUSubtarget.h.

References llvm::AMDGPUSubtarget::HasSMemRealTime.

bool llvm::SISubtarget::hasVGPRIndexMode ( ) const
inline

Definition at line 548 of file AMDGPUSubtarget.h.

References llvm::AMDGPUSubtarget::HasVGPRIndexMode.

Referenced by emitIndirectDst(), and emitIndirectSrc().

bool SISubtarget::isVGPRSpillingEnabled ( const Function F) const
bool llvm::SISubtarget::loadStoreOptEnabled ( ) const
inline

Definition at line 585 of file AMDGPUSubtarget.h.

References llvm::AMDGPUSubtarget::EnableLoadStoreOpt.

bool llvm::SISubtarget::needWaitcntBeforeBarrier ( ) const
inline
Returns
True if waitcnt instruction is needed before barrier instruction, false otherwise.

Definition at line 607 of file AMDGPUSubtarget.h.

void SISubtarget::overrideSchedPolicy ( MachineSchedPolicy Policy,
unsigned  NumRegionInstrs 
) const
override
void llvm::SISubtarget::setGISelAccessor ( GISelAccessor GISel)
inline

Definition at line 523 of file AMDGPUSubtarget.h.


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