|
LLVM
4.0.0
|
#include <AMDGPUSubtarget.h>
Public Types | |
| 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 } |
Definition at line 44 of file AMDGPUSubtarget.h.
| anonymous enum |
| Enumerator | |
|---|---|
| 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 | |
Definition at line 56 of file AMDGPUSubtarget.h.
| Enumerator | |
|---|---|
| R600 | |
| R700 | |
| EVERGREEN | |
| NORTHERN_ISLANDS | |
| SOUTHERN_ISLANDS | |
| SEA_ISLANDS | |
| VOLCANIC_ISLANDS | |
Definition at line 46 of file AMDGPUSubtarget.h.
| AMDGPUSubtarget::AMDGPUSubtarget | ( | const Triple & | TT, |
| StringRef | GPU, | ||
| StringRef | FS, | ||
| const TargetMachine & | TM | ||
| ) |
Definition at line 74 of file AMDGPUSubtarget.cpp.
References initializeSubtargetDependencies().
|
overridedefault |
|
inline |
Definition at line 266 of file AMDGPUSubtarget.h.
References DumpCode.
Referenced by llvm::AMDGPUAsmPrinter::EmitInstruction(), and llvm::AMDGPUAsmPrinter::runOnMachineFunction().
|
inline |
Definition at line 270 of file AMDGPUSubtarget.h.
References llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), and llvm::AMDGPU::isCompute().
|
inlineoverride |
Definition at line 350 of file AMDGPUSubtarget.h.
|
inlineoverride |
Definition at line 354 of file AMDGPUSubtarget.h.
|
inline |
Definition at line 333 of file AMDGPUSubtarget.h.
References isAmdHsaOS().
Referenced by llvm::AMDGPUTargetLowering::getImplicitParameterOffset(), and llvm::SISubtarget::getKernArgSegmentSize().
|
inline |
Definition at line 360 of file AMDGPUSubtarget.h.
Referenced by getMaxWavesPerCU(), and getMaxWavesPerEU().
|
inline |
Returns the offset in bytes from the start of the input buffer of the first explicit kernel argument.
Definition at line 329 of file AMDGPUSubtarget.h.
References isAmdCodeObjectV2().
Referenced by llvm::R600TargetLowering::LowerFormalArguments(), and llvm::SITargetLowering::LowerFormalArguments().
F, or minimum/maximum flat work group sizes explicitly requested using "amdgpu-flat-work-group-size" attribute attached to function F.Definition at line 192 of file AMDGPUSubtarget.cpp.
References llvm::Default, llvm::Function::getCallingConv(), llvm::AMDGPU::getIntegerAttribute(), llvm::AMDGPU::getIntegerPairAttribute(), getMaxFlatWorkGroupSize(), getMinFlatWorkGroupSize(), getWavefrontSize(), llvm::AMDGPU::isCompute(), and fuzzer::min().
Referenced by getWavesPerEU(), and PrivateMemoryInputPtr().
|
overridepure virtual |
Implemented in llvm::SISubtarget, and llvm::R600Subtarget.
|
inline |
Definition at line 167 of file AMDGPUSubtarget.h.
References Gen.
Referenced by llvm::AMDGPUTargetLowering::AMDGPUTargetLowering(), llvm::R600InstrInfo::buildSlotOfVectorInstruction(), canFoldOffset(), llvm::AMDGPUTargetLowering::CombineFMinMaxLegacy(), llvm::AMDGPUTTIImpl::getArithmeticInstrCost(), llvm::SIInstrInfo::getDefaultRsrcDataFormat(), llvm::AMDGPUTTIImpl::getLoadStoreVecRegBitWidth(), llvm::SIRegisterInfo::getMaxNumSGPRs(), llvm::SISubtarget::getMaxNumSGPRs(), getMaxWavesPerEU(), getMaxWorkGroupsPerCU(), llvm::SIRegisterInfo::getMinNumSGPRs(), llvm::SIRegisterInfo::getNumAddressableSGPRs(), llvm::AMDGPUTTIImpl::getNumberOfRegisters(), llvm::SIRegisterInfo::getNumReservedSGPRs(), llvm::SISubtarget::getOccupancyWithNumSGPRs(), llvm::SITargetLowering::getRegisterByName(), llvm::SIInstrInfo::getScratchRsrcWords23(), llvm::SIRegisterInfo::getTotalNumSGPRs(), llvm::SISubtarget::has12DWordStoreHazard(), hasAddr64(), hasBCNT(), hasBFE(), hasBFI(), hasBORROW(), hasCARRY(), hasFFBH(), hasFFBL(), hasMulI24(), hasMulU24(), llvm::SISubtarget::hasScalarCompareEq64(), initializeSubtargetDependencies(), llvm::SITargetLowering::isLegalAddressingMode(), isLegalSMRDImmOffset(), llvm::SITargetLowering::LowerFormalArguments(), llvm::SIInstrInfo::moveToVALU(), PrivateMemoryInputPtr(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::SITargetLowering::SITargetLowering(), and subtargetEncodingFamily().
|
inline |
Definition at line 337 of file AMDGPUSubtarget.h.
References isAmdHsaOS(), isMesaKernel(), and isOpenCLEnv().
Referenced by llvm::SISubtarget::getKernArgSegmentSize().
|
overridepure virtual |
Implemented in llvm::SISubtarget, and llvm::R600Subtarget.
Referenced by llvm::AMDGPUAsmPrinter::EmitInstruction(), and llvm::AMDGPUMCInstLower::lower().
|
inlineoverride |
Definition at line 144 of file AMDGPUSubtarget.h.
References InstrItins.
|
inline |
Definition at line 179 of file AMDGPUSubtarget.h.
References LDSBankCount.
|
inline |
Definition at line 175 of file AMDGPUSubtarget.h.
References LocalMemorySize.
Referenced by getMaxLocalMemSizeWithWaveCount().
|
inline |
Definition at line 412 of file AMDGPUSubtarget.h.
Referenced by getFlatWorkGroupSizes().
Return the amount of LDS that can be used that will not restrict the occupancy lower than WaveCount.
Definition at line 136 of file AMDGPUSubtarget.cpp.
References getLocalMemorySize().
|
inline |
Definition at line 183 of file AMDGPUSubtarget.h.
References MaxPrivateElementSize.
Referenced by llvm::AMDGPUTTIImpl::getLoadStoreVecRegBitWidth(), and llvm::SIInstrInfo::getScratchRsrcWords23().
|
inline |
Definition at line 374 of file AMDGPUSubtarget.h.
References getEUsPerCU(), and getMaxWavesPerEU().
Referenced by getMaxWavesPerEU().
Definition at line 380 of file AMDGPUSubtarget.h.
References getWavesPerWorkGroup().
|
inline |
Definition at line 392 of file AMDGPUSubtarget.h.
References getGeneration(), and SOUTHERN_ISLANDS.
Referenced by getMaxWavesPerCU(), and getWavesPerEU().
Definition at line 401 of file AMDGPUSubtarget.h.
References llvm::alignTo(), getEUsPerCU(), and getMaxWavesPerCU().
Definition at line 366 of file AMDGPUSubtarget.h.
References getGeneration(), getWavesPerWorkGroup(), and SOUTHERN_ISLANDS.
|
inline |
Definition at line 407 of file AMDGPUSubtarget.h.
Referenced by getFlatWorkGroupSizes().
|
inline |
Definition at line 386 of file AMDGPUSubtarget.h.
Referenced by getWavesPerEU().
Inverse of getMaxLocalMemWithWaveCount.
Return the maximum wavecount if the given LDS memory size is the only constraint.
Definition at line 161 of file AMDGPUSubtarget.cpp.
Referenced by getMaxWaves().
|
overridepure virtual |
Implemented in llvm::SISubtarget, and llvm::R600Subtarget.
Referenced by llvm::AMDGPUAsmPrinter::EmitInstruction(), and llvm::SITargetLowering::getRegisterByName().
|
inline |
Definition at line 422 of file AMDGPUSubtarget.h.
References ScalarizeGlobal.
|
inlineoverride |
Definition at line 149 of file AMDGPUSubtarget.h.
References TSInfo.
|
inline |
Definition at line 345 of file AMDGPUSubtarget.h.
References getWavefrontSize().
|
overridepure virtual |
Implemented in llvm::SISubtarget, and llvm::R600Subtarget.
|
inline |
Definition at line 171 of file AMDGPUSubtarget.h.
References WavefrontSize.
Referenced by getFlatWorkGroupSizes(), getStackAlignment(), getWavesPerWorkGroup(), llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
F, or minimum/maximum number of waves per execution unit explicitly requested using "amdgpu-waves-per-eu" attribute attached to function F.Definition at line 224 of file AMDGPUSubtarget.cpp.
References llvm::Default, getFlatWorkGroupSizes(), llvm::AMDGPU::getIntegerPairAttribute(), getMaxWavesPerEU(), getMinWavesPerEU(), and llvm::Function::hasFnAttribute().
Referenced by PrivateMemoryInputPtr().
Definition at line 417 of file AMDGPUSubtarget.h.
References llvm::alignTo(), and getWavefrontSize().
Referenced by getMaxWavesPerCU(), and getMaxWorkGroupsPerCU().
|
inline |
Definition at line 187 of file AMDGPUSubtarget.h.
References Has16BitInsts.
Referenced by llvm::AMDGPUTargetLowering::isFAbsFree(), llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::AMDGPUTargetLowering::isFPImmLegal(), llvm::AMDGPUTargetLowering::isTruncateFree(), llvm::SITargetLowering::isTypeDesirableForOp(), llvm::AMDGPUTargetLowering::isZExtFree(), llvm::AMDGPUTargetLowering::LowerFP_TO_SINT(), llvm::AMDGPUTargetLowering::LowerFP_TO_UINT(), llvm::AMDGPUTargetLowering::LowerSINT_TO_FP(), llvm::AMDGPUTargetLowering::LowerUINT_TO_FP(), llvm::AMDGPUTargetLowering::performMulCombine(), and llvm::SITargetLowering::SITargetLowering().
|
inline |
Definition at line 203 of file AMDGPUSubtarget.h.
References getGeneration(), and VOLCANIC_ISLANDS.
Referenced by initializeSubtargetDependencies().
Definition at line 219 of file AMDGPUSubtarget.h.
References EVERGREEN, getGeneration(), and SOUTHERN_ISLANDS.
Referenced by llvm::AMDGPUTargetLowering::AMDGPUTargetLowering().
|
inline |
Definition at line 207 of file AMDGPUSubtarget.h.
References EVERGREEN, and getGeneration().
Referenced by llvm::AMDGPUTargetLowering::AMDGPUTargetLowering(), hasBFM(), and llvm::R600TargetLowering::R600TargetLowering().
|
inline |
Definition at line 211 of file AMDGPUSubtarget.h.
References EVERGREEN, and getGeneration().
Referenced by llvm::AMDGPUTargetLowering::AMDGPUTargetLowering().
|
inline |
Definition at line 215 of file AMDGPUSubtarget.h.
References hasBFE().
|
inline |
Definition at line 250 of file AMDGPUSubtarget.h.
References EVERGREEN, and getGeneration().
Referenced by llvm::R600TargetLowering::R600TargetLowering().
|
inline |
Definition at line 246 of file AMDGPUSubtarget.h.
References EVERGREEN, and getGeneration().
Referenced by llvm::R600TargetLowering::R600TargetLowering().
|
inline |
Definition at line 254 of file AMDGPUSubtarget.h.
References CaymanISA.
Referenced by hasMulI24(), llvm::R600SchedStrategy::initialize(), and llvm::R600InstrInfo::isTransOnly().
|
inline |
Definition at line 195 of file AMDGPUSubtarget.h.
References FastFMAF32.
Referenced by llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd().
|
inline |
Definition at line 242 of file AMDGPUSubtarget.h.
References EVERGREEN, and getGeneration().
Referenced by llvm::AMDGPUTargetLowering::AMDGPUTargetLowering().
|
inline |
Definition at line 238 of file AMDGPUSubtarget.h.
References EVERGREEN, and getGeneration().
Referenced by llvm::AMDGPUTargetLowering::AMDGPUTargetLowering().
|
inline |
Definition at line 282 of file AMDGPUSubtarget.h.
References FP16Denormals.
Referenced by llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd(), and llvm::SITargetLowering::SITargetLowering().
|
inline |
Definition at line 286 of file AMDGPUSubtarget.h.
References FP32Denormals.
Referenced by llvm::AMDGPUTargetLowering::AMDGPUTargetLowering(), llvm::AMDGPUTTIImpl::getArithmeticInstrCost(), getFPMode(), and llvm::SITargetLowering::isFMAFasterThanFMulAndFAdd().
|
inline |
Definition at line 290 of file AMDGPUSubtarget.h.
References FP64Denormals.
Referenced by getFPMode().
|
inline |
Definition at line 294 of file AMDGPUSubtarget.h.
References FPExceptions.
Referenced by llvm::AMDGPUTargetLowering::AMDGPUTargetLowering().
|
inline |
Definition at line 199 of file AMDGPUSubtarget.h.
References HalfRate64Ops.
|
inline |
Definition at line 191 of file AMDGPUSubtarget.h.
References FP64.
|
inline |
Definition at line 233 of file AMDGPUSubtarget.h.
References getGeneration(), hasCaymanISA(), and SOUTHERN_ISLANDS.
Referenced by llvm::AMDGPUTargetLowering::performMulCombine(), and llvm::AMDGPUTargetLowering::performMulhsCombine().
|
inline |
Definition at line 229 of file AMDGPUSubtarget.h.
References EVERGREEN, and getGeneration().
Referenced by llvm::AMDGPUTargetLowering::performMulCombine(), and llvm::AMDGPUTargetLowering::performMulhuCombine().
|
inline |
Definition at line 302 of file AMDGPUSubtarget.h.
References UnalignedBufferAccess.
Referenced by llvm::SITargetLowering::allowsMisalignedMemoryAccesses().
|
inline |
Definition at line 306 of file AMDGPUSubtarget.h.
References UnalignedScratchAccess.
Referenced by llvm::SITargetLowering::allowsMisalignedMemoryAccesses().
| AMDGPUSubtarget & AMDGPUSubtarget::initializeSubtargetDependencies | ( | const Triple & | TT, |
| StringRef | GPU, | ||
| StringRef | FS | ||
| ) |
Definition at line 33 of file AMDGPUSubtarget.cpp.
References llvm::StringRef::contains(), FlatForGlobal, FP16Denormals, FP32Denormals, FP64Denormals, getGeneration(), hasAddr64(), isAmdHsaOS(), MaxPrivateElementSize, NORTHERN_ISLANDS, and ParseSubtargetFeatures().
Referenced by AMDGPUSubtarget().
|
inline |
Definition at line 323 of file AMDGPUSubtarget.h.
References isAmdHsaOS(), and isMesaKernel().
Referenced by llvm::AMDGPUAsmPrinter::EmitFunctionBodyStart(), llvm::SIFrameLowering::emitPrologue(), getExplicitKernelArgOffset(), and PrivateMemoryInputPtr().
|
inline |
Definition at line 155 of file AMDGPUSubtarget.h.
References llvm::Triple::AMDHSA, llvm::Triple::getOS(), and TargetTriple.
Referenced by llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), getAlignmentForImplicitArgPtr(), llvm::SIInstrInfo::getDefaultRsrcDataFormat(), getImplicitArgNumBytes(), initializeSubtargetDependencies(), isAmdCodeObjectV2(), llvm::SITargetLowering::LowerFormalArguments(), PrivateMemoryInputPtr(), and llvm::AMDGPUAsmPrinter::runOnMachineFunction().
|
inline |
Definition at line 159 of file AMDGPUSubtarget.h.
References llvm::Triple::getOS(), llvm::Triple::Mesa3D, and TargetTriple.
Referenced by isMesaGfxShader(), and isMesaKernel().
|
inline |
Definition at line 319 of file AMDGPUSubtarget.h.
References llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), isMesa3DOS(), and llvm::AMDGPU::isShader().
Referenced by llvm::SIFrameLowering::emitPrologue(), and PrivateMemoryInputPtr().
|
inline |
Definition at line 314 of file AMDGPUSubtarget.h.
References llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), isMesa3DOS(), and llvm::AMDGPU::isShader().
Referenced by getImplicitArgNumBytes(), and isAmdCodeObjectV2().
|
inline |
Definition at line 163 of file AMDGPUSubtarget.h.
References llvm::Triple::getEnvironment(), llvm::Triple::OpenCL, and TargetTriple.
Referenced by getImplicitArgNumBytes().
|
inline |
Definition at line 258 of file AMDGPUSubtarget.h.
References EnablePromoteAlloca.
|
inline |
Definition at line 310 of file AMDGPUSubtarget.h.
References EnableXNACK.
Referenced by llvm::SIRegisterInfo::getNumReservedSGPRs().
Referenced by initializeSubtargetDependencies().
|
inline |
Definition at line 421 of file AMDGPUSubtarget.h.
References ScalarizeGlobal.
|
inline |
Definition at line 262 of file AMDGPUSubtarget.h.
References EnableUnsafeDSOffsetFolding.
|
inline |
Definition at line 298 of file AMDGPUSubtarget.h.
References FlatForGlobal.
|
protected |
Definition at line 119 of file AMDGPUSubtarget.h.
Referenced by hasCaymanISA().
|
protected |
Definition at line 120 of file AMDGPUSubtarget.h.
Referenced by llvm::R600Subtarget::hasCFAluBug().
|
protected |
Definition at line 109 of file AMDGPUSubtarget.h.
|
protected |
Definition at line 94 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::debuggerEmitPrologue().
|
protected |
Definition at line 92 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::debuggerInsertNops().
|
protected |
Definition at line 93 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::debuggerReserveRegs().
|
protected |
Definition at line 102 of file AMDGPUSubtarget.h.
Referenced by dumpCode().
|
protected |
Definition at line 99 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::loadStoreOptEnabled().
|
protected |
Definition at line 98 of file AMDGPUSubtarget.h.
Referenced by isPromoteAllocaEnabled().
|
protected |
Definition at line 101 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::enableSIScheduler().
|
protected |
Definition at line 100 of file AMDGPUSubtarget.h.
Referenced by unsafeDSOffsetFoldingEnabled().
|
protected |
Definition at line 97 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::isVGPRSpillingEnabled().
|
protected |
Definition at line 91 of file AMDGPUSubtarget.h.
Referenced by isXNACKEnabled().
|
protected |
Definition at line 80 of file AMDGPUSubtarget.h.
Referenced by hasFastFMAF32().
|
protected |
Definition at line 126 of file AMDGPUSubtarget.h.
|
protected |
Definition at line 117 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::hasFlatAddressSpace().
|
protected |
Definition at line 88 of file AMDGPUSubtarget.h.
Referenced by initializeSubtargetDependencies(), and useFlatForGlobal().
|
protected |
Definition at line 84 of file AMDGPUSubtarget.h.
Referenced by hasFP16Denormals(), and initializeSubtargetDependencies().
|
protected |
Definition at line 85 of file AMDGPUSubtarget.h.
Referenced by hasFP32Denormals(), and initializeSubtargetDependencies().
|
protected |
Definition at line 105 of file AMDGPUSubtarget.h.
Referenced by hasHWFP64().
|
protected |
Definition at line 86 of file AMDGPUSubtarget.h.
Referenced by hasFP64Denormals(), and initializeSubtargetDependencies().
|
protected |
Definition at line 87 of file AMDGPUSubtarget.h.
Referenced by hasFPExceptions().
|
protected |
Definition at line 107 of file AMDGPUSubtarget.h.
|
protected |
Definition at line 108 of file AMDGPUSubtarget.h.
|
protected |
Definition at line 72 of file AMDGPUSubtarget.h.
Referenced by getGeneration().
|
protected |
Definition at line 81 of file AMDGPUSubtarget.h.
Referenced by hasHalfRate64Ops().
|
protected |
Definition at line 112 of file AMDGPUSubtarget.h.
Referenced by has16BitInsts().
|
protected |
Definition at line 116 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::hasInv2PiInlineImm().
|
protected |
Definition at line 113 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::hasMovrel().
|
protected |
Definition at line 115 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::hasScalarStores().
|
protected |
Definition at line 111 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::hasSMemRealTime().
|
protected |
Definition at line 121 of file AMDGPUSubtarget.h.
Referenced by llvm::R600Subtarget::hasVertexCache().
|
protected |
Definition at line 114 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::hasVGPRIndexMode().
|
protected |
Definition at line 128 of file AMDGPUSubtarget.h.
Referenced by getInstrItineraryData().
|
protected |
Definition at line 73 of file AMDGPUSubtarget.h.
|
protected |
Definition at line 106 of file AMDGPUSubtarget.h.
|
protected |
Definition at line 76 of file AMDGPUSubtarget.h.
Referenced by getLDSBankCount().
|
protected |
Definition at line 75 of file AMDGPUSubtarget.h.
Referenced by getLocalMemorySize().
|
protected |
Definition at line 77 of file AMDGPUSubtarget.h.
Referenced by getMaxPrivateElementSize(), and initializeSubtargetDependencies().
|
protected |
Definition at line 118 of file AMDGPUSubtarget.h.
|
protected |
Definition at line 123 of file AMDGPUSubtarget.h.
Referenced by getScalarizeGlobalBehavior(), and setScalarizeGlobalBehavior().
|
protected |
Definition at line 110 of file AMDGPUSubtarget.h.
Referenced by llvm::SISubtarget::hasSGPRInitBug().
|
protected |
Definition at line 71 of file AMDGPUSubtarget.h.
Referenced by isAmdHsaOS(), isMesa3DOS(), and isOpenCLEnv().
|
protected |
Definition at line 122 of file AMDGPUSubtarget.h.
Referenced by llvm::R600Subtarget::getTexVTXClauseSize().
|
protected |
Definition at line 129 of file AMDGPUSubtarget.h.
Referenced by getSelectionDAGInfo().
|
protected |
Definition at line 90 of file AMDGPUSubtarget.h.
Referenced by hasUnalignedBufferAccess().
|
protected |
Definition at line 89 of file AMDGPUSubtarget.h.
Referenced by hasUnalignedScratchAccess().
|
protected |
Definition at line 74 of file AMDGPUSubtarget.h.
Referenced by getWavefrontSize().
1.8.6