|
LLVM 24.0.0git
|
Namespaces | |
| namespace | Barrier |
| namespace | CPol |
| namespace | DefaultBufferSizes |
| namespace | DepCtr |
| namespace | DPP |
| namespace | DWARFAS |
| namespace | ElfNote |
| namespace | EncValues |
| namespace | Exp |
| namespace | GenericVersion |
| Generic target versions emitted by this version of LLVM. | |
| namespace | HazardClass |
| namespace | HSAMD |
| namespace | HWEncoding |
| namespace | Hwreg |
| namespace | impl |
| namespace | ImplicitArg |
| namespace | IsaInfo |
| namespace | MFMAScaleFormats |
| namespace | MTBUFFormat |
| namespace | PALMD |
| namespace | SDWA |
| namespace | SendMsg |
| namespace | Swizzle |
| namespace | SyntheticAperture |
| namespace | UCVersion |
| namespace | UfmtGFX10 |
| namespace | UfmtGFX11 |
| namespace | VGPRIndexMode |
| namespace | VirtRegFlag |
| namespace | VOP3PEncoding |
| namespace | VOPD |
| namespace | WaitEvent |
| namespace | WMMA |
| namespace | WMMAMods |
Classes | |
| struct | AMDGPUBlockingCyclesInfo |
| class | AMDGPUMCInstrAnalysis |
| struct | AMDGPUMCKernelCodeT |
| struct | CanBeVOPD |
| struct | ClassMatch |
| class | ClusterDimsAttr |
| struct | CoExecInfo |
| Co-execution characteristics for a multi-cycle instruction. More... | |
| struct | CoExecSlotInfo |
| Per-slot info: which instruction classes may co-execute here. More... | |
| struct | ConsumerTarget |
| struct | CustomOperand |
| struct | CustomOperandVal |
| struct | DPMACCInstructionInfo |
| struct | EncodingField |
| struct | EncodingFields |
| struct | FP4FP8DstByteSelInfo |
| struct | FuncInfo |
| struct | GcnBufferFormatInfo |
| struct | GVUsesInfoTy |
| struct | HardwareLimits |
| Represents the hardware counter limits for different wait count types. More... | |
| struct | HazardAntiHintRule |
| struct | HazardContext |
| struct | HazardSide |
| class | HWEvents |
| Bit mask of hardware events. More... | |
| struct | ImageDimIntrinsicInfo |
| struct | Incoming |
Incoming for lane mask phi as machine instruction, incoming register Reg and incoming block Block are taken from machine instruction. More... | |
| struct | InfoSectionData |
| class | IntrinsicLaneMaskAnalyzer |
| struct | IsaVersion |
| Instruction set architecture version. More... | |
| class | LaneMaskConstants |
| class | LoopFinder |
| Helper class that detects loops which require us to lower an i1 COPY into bitwise manipulation. More... | |
| struct | MAIInstInfo |
| struct | MCKernelDescriptor |
| struct | MFMA_F8F6F4_Info |
| struct | MIMGBaseOpcodeInfo |
| struct | MIMGBiasMappingInfo |
| struct | MIMGDimInfo |
| struct | MIMGG16MappingInfo |
| struct | MIMGInfo |
| struct | MIMGLZMappingInfo |
| struct | MIMGMIPMappingInfo |
| struct | MIMGOffsetMappingInfo |
| struct | MTBUFInfo |
| struct | MUBUFInfo |
| class | PhiIncomingAnalysis |
| Helper class that determines the relationship between incoming values of a phi in the control flow graph to determine where an incoming value can simply be taken as a scalar lane mask as-is, and where it needs to be merged with another, previously defined lane mask. More... | |
| class | PhiLoweringHelper |
| struct | PredicateMapping |
| class | RegBankLegalizeHelper |
| struct | RegBankLegalizeRule |
| class | RegBankLegalizeRules |
| struct | RegBankLLTMapping |
| struct | RsrcIntrinsic |
| class | SetOfRulesForOpcode |
| struct | SMInfo |
| class | TargetID |
| struct | True16D16Info |
| struct | VOP3PHasNoOpSelHiInfo |
| struct | VOPC64DPPInfo |
| struct | VOPCDPPAsmOnlyInfo |
| struct | VOPDComponentInfo |
| struct | VOPDInfo |
| struct | VOPDXYInfo |
| struct | VOPInfo |
| struct | VOPTrue16Info |
| class | Waitcnt |
| Represents the counter values to wait for in an s_waitcnt instruction. More... | |
| struct | WaterfallInfo |
| Holds waterfall loop information: the set of SGPR operand registers that need waterfalling, and an instruction range [Start, End) to wrap in the loop. More... | |
| struct | WindowSpec |
| struct | WMMAInstInfo |
| struct | WMMAOpcodeMappingInfo |
Typedefs | |
| using | AMDGPUFeatureBitset = Bitset<NUM_FEATURES> |
| using | R600FeatureBitset = Bitset<R600_NUM_FEATURES> |
| using | CoExecMaskT = CoExecMask |
| using | FunctionVariableMap = MapVector<Function *, DenseSet<GlobalVariable *>> |
| using | VariableFunctionMap = DenseMap<GlobalVariable *, DenseSet<Function *>> |
| using | HazardClassMask = uint32_t |
| using | RulePredicate = bool (*)(const HazardContext &) |
| using | InstPredicate = bool (*)(const MachineInstr &, const HazardContext &) |
| using | AdvanceForRawWindowFn |
| using | TargetIDSetting = AMDGPU::TargetIDSetting |
| using | TargetID = AMDGPU::TargetID |
| template<unsigned Bit, unsigned D = 0> | |
| using | EncodingBit = EncodingField<Bit, Bit, D> |
Variables | |
| constexpr unsigned | NumAsyncStages = BitWidth<AsyncStages> |
| The number of stages, which is also the number of bits in a stage mask. | |
| constexpr StringLiteral | AsyncStageNames [NumAsyncStages] |
| The name of each stage, indexed by the position of its bit. | |
| constexpr unsigned | MaxCoExecStages = 32 |
| Max stages: INT8 16x16x64 = 17 cycles, round up for safety. | |
| static constexpr LaneMaskConstants | LaneMaskConstants32 |
| static constexpr LaneMaskConstants | LaneMaskConstants64 |
| static constexpr unsigned | NamedBarrierTypeSizeInBytes = 1 |
| const uint64_t | RSRC_DATA_FORMAT = 0xf00000000000LL |
| const uint64_t | RSRC_ELEMENT_SIZE_SHIFT = (32 + 19) |
| const uint64_t | RSRC_INDEX_STRIDE_SHIFT = (32 + 21) |
| const uint64_t | RSRC_TID_ENABLE = UINT64_C(1) << (32 + 23) |
| static constexpr uint32_t | ExtendedFltRoundOffset = 4 |
| Offset of nonstandard values for llvm.get.rounding results from the largest supported mode. | |
| static constexpr uint32_t | F32FltRoundOffset = 0 |
| Offset in mode register of f32 rounding mode. | |
| static constexpr uint32_t | F64FltRoundOffset = 2 |
| Offset in mode register of f64/f16 rounding mode. | |
| const uint64_t | FltRoundConversionTable |
| const uint64_t | FltRoundToHWConversionTable |
| const int | OPR_ID_UNKNOWN = -1 |
| const int | OPR_ID_UNSUPPORTED = -2 |
| const int | OPR_ID_DUPLICATE = -3 |
| const int | OPR_VAL_INVALID = -4 |
Definition at line 102 of file GCNPreRAAntiHints.h.
| using llvm::AMDGPU::AMDGPUFeatureBitset = Bitset<NUM_FEATURES> |
Definition at line 52 of file AMDGPUTargetParser.h.
| using llvm::AMDGPU::CoExecMaskT = CoExecMask |
Definition at line 72 of file AMDGPUCoExecInfo.h.
| using llvm::AMDGPU::EncodingBit = EncodingField<Bit, Bit, D> |
Definition at line 334 of file AMDGPUBaseInfo.h.
| using llvm::AMDGPU::FunctionVariableMap = MapVector<Function *, DenseSet<GlobalVariable *>> |
Definition at line 36 of file AMDGPUMemoryUtils.h.
Definition at line 27 of file GCNPreRAAntiHints.h.
| using llvm::AMDGPU::InstPredicate = bool (*)(const MachineInstr &, const HazardContext &) |
Definition at line 98 of file GCNPreRAAntiHints.h.
| using llvm::AMDGPU::R600FeatureBitset = Bitset<R600_NUM_FEATURES> |
Definition at line 61 of file AMDGPUTargetParser.h.
| using llvm::AMDGPU::RulePredicate = bool (*)(const HazardContext &) |
Definition at line 95 of file GCNPreRAAntiHints.h.
| using llvm::AMDGPU::TargetID = AMDGPU::TargetID |
Definition at line 161 of file AMDGPUBaseInfo.h.
Definition at line 160 of file AMDGPUBaseInfo.h.
| using llvm::AMDGPU::VariableFunctionMap = DenseMap<GlobalVariable *, DenseSet<Function *>> |
Definition at line 37 of file AMDGPUMemoryUtils.h.
| anonymous enum |
| Enumerator | |
|---|---|
| AMDHSA_COV4 | |
| AMDHSA_COV5 | |
| AMDHSA_COV6 | |
Definition at line 70 of file AMDGPUBaseInfo.h.
| anonymous enum |
| Enumerator | |
|---|---|
| FIXED_NUM_SGPRS_FOR_INIT_BUG | |
Definition at line 169 of file AMDGPUTargetParser.h.
One enumerator per frontend-visible feature bit; NUM_FEATURES is the count.
Definition at line 47 of file AMDGPUTargetParser.h.
| enum llvm::AMDGPU::AMDGPUFltRounds : int8_t |
Return values used for llvm.get.rounding.
When both the F32 and F64/F16 modes are the same, returns the standard values. If they differ, returns an extended mode starting at 8.
Definition at line 101 of file SIModeRegisterDefaults.h.
|
strong |
AMDGPU-specific scheduling decision reasons.
These provide more granularity than the generic CandReason enum for debugging purposes.
| Enumerator | |
|---|---|
| None | |
| Stall | |
| MemoryPipeline | |
| CritResourceBalance | |
| CritResourceDep | |
| NUM_REASONS | |
Definition at line 30 of file AMDGPUCoExecSchedStrategy.h.
|
strong |
| Enumerator | |
|---|---|
| OneDirectional | |
| Symmetric | |
Definition at line 64 of file GCNPreRAAntiHints.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| MFMAWAW | |
| MFMAWAR | |
| WMMAWARAB | |
| SWMMACWARIndex | |
| WMMAWAW | |
| TransWAR | |
| MemAddrWAR | |
| VAVdstWAR | |
| All | |
Definition at line 29 of file AMDGPUSubtarget.h.
| Enumerator | |
|---|---|
| SGPR_SPILL | |
Definition at line 2050 of file SIInstrInfo.h.
|
strong |
Bit mask of the async stages tracked by the asyncmark / wait_asyncmark intrinsics.
Each stage has its own independent sequence of marks. A single stage is a mask with exactly one bit set.
The bit of each stage is part of the IR, so do not renumber them. Some values are RESERVED for later use.
Definition at line 37 of file AMDGPUAsyncStages.h.
|
strong |
| Enumerator | |
|---|---|
| Off | |
| Fence | |
| All | |
Definition at line 42 of file AMDGPUSubtarget.h.
|
strong |
Bitmask for instruction types allowed to co-execute at a stage.
| Enumerator | |
|---|---|
| None | |
| CTRL | |
| VALU | |
| TRANS | |
| SALU | |
| DS | |
| VMEM | |
| SMEM | |
| WMMA | |
| All | |
| MEM | |
| StageE0 | |
| StageE | |
| StageI | |
| StageIS | |
| StageV | |
| StageTR | |
Definition at line 45 of file AMDGPUCoExecInfo.h.
|
strong |
Stage type for co-execution (for annotation/display).
| Enumerator | |
|---|---|
| NONE | |
| E0 | |
| E | |
| I | |
| IS | |
| V | |
| TR | |
Definition at line 165 of file AMDGPUCoExecInfo.h.
| Enumerator | |
|---|---|
| NoFastRules | |
| Standard | |
| StandardB | |
| Vector | |
Definition at line 357 of file AMDGPURegBankLegalizeRules.h.
| Enumerator | |
|---|---|
| NO_ERROR | |
| INVALID_FEATURE_COMBINATION | |
| UNSUPPORTED_TARGET_FEATURE | |
Definition at line 76 of file AMDGPUTargetParser.h.
| enum llvm::AMDGPU::Fixups |
| Enumerator | |
|---|---|
| fixup_si_sopp_br | 16-bit PC relative fixup for SOPP branch instructions. |
| LastTargetFixupKind | |
| NumTargetFixupKinds | |
Definition at line 16 of file AMDGPUFixupKinds.h.
|
strong |
| Enumerator | |
|---|---|
| FLAT | |
| FlatGlobal | |
| FlatScratch | |
Definition at line 112 of file AMDGPUAddrSpace.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| FP4 | |
| FP8 | |
Definition at line 72 of file AMDGPUBaseInfo.h.
|
strong |
Per-function flags packed into INFO_FLAGS entries.
| Enumerator | |
|---|---|
| FUNC_USES_VCC | |
| FUNC_USES_FLAT_SCRATCH | |
| FUNC_HAS_DYN_STACK | |
| LLVM_MARK_AS_BITMASK_ENUM | |
Definition at line 64 of file AMDGPUObjLinkingInfo.h.
| enum llvm::AMDGPU::GPUKind : uint8_t |
GPU kinds supported by the AMDGPU target.
| Enumerator | |
|---|---|
| GK_NONE | |
Definition at line 35 of file AMDGPUTargetParser.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| Def | |
| Src0 | |
| Src1 | |
| Src2 | |
| Src0Src1 | |
| Idx | |
| Vaddr | |
| AnySrc | |
| AnyUse | |
Definition at line 51 of file GCNPreRAAntiHints.h.
| enum llvm::AMDGPU::IGLPStrategyID : int |
Operand 0 immediate for IGLP_OPT pseudo instructions.
| Enumerator | |
|---|---|
| MFMASmallGemmOptID | |
| MFMASmallGemmSingleWaveOptID | |
| MFMAExpInterleaveID | |
| MFMAExpSimpleInterleaveID | |
Definition at line 23 of file AMDGPUIGroupLP.h.
|
strong |
Entry kind values for the .amdgpu.info section.
Entries that appear between an INFO_FUNC and the next INFO_FUNC (or end of section) belong to the function scope opened by that INFO_FUNC.
| Enumerator | |
|---|---|
| INFO_FUNC | Opens a new function scope. Payload is an 8-byte symbol reference (relocated) identifying the function. All subsequent entries until the next INFO_FUNC belong to this function. |
| INFO_FLAGS | Bitfield of FuncInfoFlags properties for the function. [u32]. |
| INFO_NUM_SGPR | Number of SGPRs explicitly used by the function. [u32]. |
| INFO_NUM_VGPR | Number of architectural VGPRs used by the function. [u32]. |
| INFO_NUM_AGPR | Number of accumulator VGPRs (AGPRs) used by the function. [u32]. |
| INFO_PRIVATE_SEGMENT_SIZE | Private (scratch) memory size in bytes required by the function. [u32]. |
| INFO_USE | Dependency edge: the function uses the resource identified by the 8-byte relocated symbol (e.g. an LDS variable or named barrier). |
| INFO_CALL | Direct call edge: the function calls the callee identified by the 8-byte relocated symbol. |
| INFO_INDIRECT_CALL | Indirect call edge: the function contains an indirect call whose callee is expected to match the type-ID string at the given .amdgpu.strtab offset. [u32] |
| INFO_TYPEID | Function type ID: tags an address-taken function with a type-ID string (at the given .amdgpu.strtab offset) so the linker can match it against INFO_INDIRECT_CALL entries. [u32] |
Definition at line 32 of file AMDGPUObjLinkingInfo.h.
Definition at line 28 of file AMDGPUWaitcntUtils.h.
|
strong |
Classification of instructions by execution characteristics.
Used for scheduling decisions and co-execution slot preferences.
| Enumerator | |
|---|---|
| WMMA | |
| SingleCycleVALU | |
| TRANS | |
| MultiCycleVALU | |
| VMEM | |
| SMEM | |
| DS | |
| SALU | |
| DMA | |
| Fence | |
| Other | |
| NUM_FLAVORS | |
Definition at line 80 of file AMDGPUCoExecInfo.h.
|
strong |
| Enumerator | |
|---|---|
| module | |
| table | |
| kernel | |
| hybrid | |
Definition at line 44 of file AMDGPUSubtarget.h.
|
strong |
| Enumerator | |
|---|---|
| WindowBudget | |
| RegisterCount | |
Definition at line 69 of file GCNPreRAAntiHints.h.
Definition at line 311 of file AMDGPURegBankLegalizeRules.h.
Definition at line 423 of file SIDefines.h.
One enumerator per frontend-visible R600 feature bit; R600_NUM_FEATURES is the count.
Definition at line 56 of file AMDGPUTargetParser.h.
Definition at line 168 of file AMDGPURegBankLegalizeRules.h.
|
strong |
| Enumerator | |
|---|---|
| DPP | |
| Iterative | |
| None | |
Definition at line 27 of file AMDGPUSubtarget.h.
|
strong |
| Enumerator | |
|---|---|
| NONE | |
| ALU | |
| VALU | |
| SALU | |
| MFMA | |
| VMEM | |
| VMEM_READ | |
| VMEM_WRITE | |
| DS | |
| DS_READ | |
| DS_WRITE | |
| TRANS | |
| LDSDMA | |
| ALL | |
Definition at line 32 of file AMDGPUIGroupLP.h.
|
strong |
| Enumerator | |
|---|---|
| Initial | |
| PreRAReentry | |
| PostRA | |
Definition at line 20 of file AMDGPUIGroupLP.h.
|
strong |
| Enumerator | |
|---|---|
| Unsupported | |
| Any | |
| Off | |
| On | |
Definition at line 294 of file AMDGPUTargetParser.h.
Definition at line 39 of file AMDGPURegBankLegalizeRules.h.
|
strong |
Normalized WMMA or SWMMAC family used to select co-execution rules.
| Enumerator | |
|---|---|
| Unknown | |
| IU8_16x16x64 | |
| F8F6F4_16x16x128 | |
| F8F6F4_16x16x128_BothF4 | |
| FP8BF8_16x16x64 | |
| F16BF16_16x16x32 | |
| FP8BF8_16x16x128 | |
| F4_32x16x128 | |
Definition at line 123 of file AMDGPUBaseInfo.h.
Definition at line 672 of file AMDGPU.h.
References llvm::AMDGPUAS::MAX_AMDGPU_ADDRESS.
Referenced by llvm::GCNTTIImpl::addrspacesMayAlias(), llvm::AMDGPUAAResult::alias(), and llvm::GCNTTIImpl::isValidAddrSpaceCast().
| void llvm::AMDGPU::applyAntiHintRules | ( | MachineFunction & | MF, |
| const HazardContext & | Ctx ) |
Definition at line 724 of file GCNPreRAAntiHints.cpp.
|
inline |
Mask, from the least significant bit up. Definition at line 103 of file AMDGPUAsyncStages.h.
References I, llvm::make_filter_range(), llvm::map_range(), NumAsyncStages, and llvm::seq().
Referenced by operator<<().
|
constexpr |
Mask of the asyncmark / wait_asyncmark intrinsics and pseudos. The zero mask is the one exception to a set bit naming a stage: it names every stage rather than none. Definition at line 96 of file AMDGPUAsyncStages.h.
References ALL, assert(), and isValidAsyncStageMask().
Referenced by llvm::AMDGPUAsmPrinter::emitInstruction().
| void llvm::AMDGPU::buildReadAnyLane | ( | MachineIRBuilder & | B, |
| Register | SgprDst, | ||
| Register | VgprSrc, | ||
| const RegisterBankInfo & | RBI ) |
Definition at line 195 of file AMDGPUGlobalISelUtils.cpp.
References B(), and buildReadLane().
| void llvm::AMDGPU::buildReadFirstLane | ( | MachineIRBuilder & | B, |
| Register | SgprDst, | ||
| Register | VgprSrc, | ||
| const RegisterBankInfo & | RBI ) |
Definition at line 204 of file AMDGPUGlobalISelUtils.cpp.
References B(), and buildReadLane().
|
constexpr |
Definition at line 1482 of file AMDGPUBaseInfo.h.
References CC, and llvm::CallingConv::Fast.
Referenced by llvm::AMDGPUCallLowering::isEligibleForTailCallOptimization(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), and mayTailCallThisCC().
| InstructionFlavor llvm::AMDGPU::classifyFlavor | ( | const MachineInstr & | MI, |
| const SIInstrInfo & | SII ) |
Classify MI into the execution flavor that drives both the scheduler's slot preferences and the hazard recognizer's co-execution masks.
Definition at line 374 of file AMDGPUCoExecSchedStrategy.cpp.
References DMA, DS, Fence, llvm::SIInstrInfo::getBlockingCycles(), llvm::SIInstrInfo::isDS(), llvm::SIInstrInfo::isLDSDMA(), llvm::SIInstrInfo::isMFMA(), llvm::SIInstrInfo::isSALU(), llvm::SIInstrInfo::isSMRD(), llvm::SIInstrInfo::isSWMMAC(), llvm::SIInstrInfo::isTRANS(), llvm::SIInstrInfo::isVALU(), llvm::SIInstrInfo::isVMEM(), llvm::SIInstrInfo::isWaitcnt(), llvm::SIInstrInfo::isWMMA(), MI, MultiCycleVALU, Opc, Other, SALU, SingleCycleVALU, SMEM, TRANS, VMEM, and WMMA.
Referenced by llvm::CandidateHeuristics::collectRegionSummary(), llvm::AMDGPUCoExecSchedStrategy::dumpPickSummary(), llvm::CandidateHeuristics::getCarriedLatency(), llvm::GCNHazardRecognizer::getCoExecMaskForMI(), llvm::CandidateHeuristics::getStallCosts(), llvm::CandidateHeuristics::tryCriticalResourceDependency(), llvm::CandidateHeuristics::tryMemoryPipeline(), and llvm::CandidateHeuristics::updateForScheduling().
| std::optional< unsigned > llvm::AMDGPU::convertSetRegImmToVgprMSBs | ( | const MachineInstr & | MI, |
| bool | HasSetregVGPRMSBFixup ) |
MI if it sets it. If HasSetregVGPRMSBFixup is true then size of the ID_MODE mask is ignored. Definition at line 3505 of file AMDGPUBaseInfo.cpp.
References assert(), convertSetRegImmToVgprMSBs(), and MI.
| std::optional< unsigned > llvm::AMDGPU::convertSetRegImmToVgprMSBs | ( | const MCInst & | MI, |
| bool | HasSetregVGPRMSBFixup ) |
MI if it sets it. If HasSetregVGPRMSBFixup is true then size of the ID_MODE mask is ignored. Definition at line 3513 of file AMDGPUBaseInfo.cpp.
References assert(), convertSetRegImmToVgprMSBs(), and MI.
|
static |
Definition at line 3487 of file AMDGPUBaseInfo.cpp.
References llvm::countr_zero_constexpr(), llvm::AMDGPU::EncodingFields< HwregId, HwregOffset, HwregSize >::decode(), llvm::AMDGPU::Hwreg::DST_VGPR_MSB, llvm::AMDGPU::Hwreg::ID_MODE, Imm, llvm::maskTrailingOnes(), llvm::Offset, llvm::rotr(), llvm::Size, uint64_t, and llvm::AMDGPU::Hwreg::VGPR_MSB_MASK.
Referenced by convertSetRegImmToVgprMSBs(), convertSetRegImmToVgprMSBs(), llvm::AMDGPUAsmPrinter::emitInstruction(), and llvm::AMDGPU::AMDGPUMCInstrAnalysis::updateState().
| uint64_t llvm::AMDGPU::convertSMRDOffsetUnits | ( | const MCSubtargetInfo & | ST, |
| uint64_t | ByteOffset ) |
Convert ByteOffset to dwords if the subtarget uses dword SMRD immediate offsets.
Definition at line 3289 of file AMDGPUBaseInfo.cpp.
References assert(), hasSMEMByteOffset(), isDwordAligned(), and uint64_t.
Referenced by getSMRDEncodedLiteralOffset32(), and getSMRDEncodedOffset().
Definition at line 43 of file AMDGPUMemoryUtils.cpp.
References N, and llvm::Instruction::setMetadata().
| std::optional< AMDGPU::InstCounterType > llvm::AMDGPU::counterTypeForInstr | ( | unsigned | Opcode | ) |
Determine if MI is a gfx12+ single-counter S_WAIT_*CNT instruction, and if so, which counter it is waiting on.
Definition at line 152 of file AMDGPUWaitcntUtils.cpp.
References ASYNC_CNT, BVH_CNT, DS_CNT, EXP_CNT, KM_CNT, LOAD_CNT, SAMPLE_CNT, STORE_CNT, TENSOR_CNT, and X_CNT.
Referenced by isWaitInstr().
| TargetID llvm::AMDGPU::createAMDGPUTargetID | ( | const MCSubtargetInfo & | STI, |
| StringRef | FeatureString ) |
Construct TargetID from MCSubtargetInfo.
FeatureString is used to determine explicitly requested xnack/sramecc settings.
Definition at line 1087 of file AMDGPUBaseInfo.cpp.
References llvm::AMDGPU::TargetID::createFromSubtargetFeatures(), llvm::MCSubtargetInfo::getCPU(), and llvm::MCSubtargetInfo::getTargetTriple().
Referenced by llvm::AMDGPUTargetStreamer::initializeTargetID().
| Register llvm::AMDGPU::createLaneMaskReg | ( | MachineRegisterInfo * | MRI, |
| MachineRegisterInfo::VRegAttrs | LaneMaskRegAttrs ) |
Definition at line 383 of file SILowerI1Copies.cpp.
References MRI.
Referenced by insertUndefLaneMask(), and llvm::AMDGPU::PhiLoweringHelper::mergeIncomingLaneMasks().
|
static |
Definition at line 79 of file AMDGPUAsanInstrumentation.cpp.
References llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateICmpSGE(), llvm::IRBuilderBase::CreateIntCast(), and llvm::Value::getType().
Referenced by instrumentAddressImpl().
|
static |
Definition at line 1864 of file AMDGPUBaseInfo.cpp.
References Idx, and llvm::Size.
Referenced by llvm::AMDGPU::DepCtr::decodeDepCtr().
| unsigned llvm::AMDGPU::decodeDscnt | ( | const IsaVersion & | Version, |
| unsigned | Waitcnt ) |
Waitcnt for given isa Version. Definition at line 1751 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by decodeLoadcntDscnt(), and decodeStorecntDscnt().
| unsigned llvm::AMDGPU::decodeExpcnt | ( | const IsaVersion & | Version, |
| unsigned | Waitcnt ) |
Waitcnt for given isa Version. Definition at line 1731 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by decodeWaitcnt(), and decodeWaitcnt().
Read the hardware rounding mode equivalent of a AMDGPUFltRounds value.
Definition at line 235 of file SIModeRegisterDefaults.cpp.
References FltRoundToHWConversionTable.
Referenced by llvm::SITargetLowering::lowerSET_ROUNDING().
| unsigned llvm::AMDGPU::decodeLgkmcnt | ( | const IsaVersion & | Version, |
| unsigned | Waitcnt ) |
Waitcnt for given isa Version. Definition at line 1736 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by decodeWaitcnt(), and decodeWaitcnt().
| unsigned llvm::AMDGPU::decodeLoadcnt | ( | const IsaVersion & | Version, |
| unsigned | Waitcnt ) |
Waitcnt for given isa Version. Definition at line 1741 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by decodeLoadcntDscnt().
| Waitcnt llvm::AMDGPU::decodeLoadcntDscnt | ( | const IsaVersion & | Version, |
| unsigned | LoadcntDscnt ) |
LoadcntDscnt for given isa Version. Definition at line 127 of file AMDGPUWaitcntUtils.cpp.
References decodeDscnt(), decodeLoadcnt(), DS_CNT, LOAD_CNT, llvm::AMDGPU::Waitcnt::set(), and llvm::Version.
| unsigned llvm::AMDGPU::decodeStorecnt | ( | const IsaVersion & | Version, |
| unsigned | Waitcnt ) |
Waitcnt for given isa Version. Definition at line 1746 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by decodeStorecntDscnt().
| Waitcnt llvm::AMDGPU::decodeStorecntDscnt | ( | const IsaVersion & | Version, |
| unsigned | StorecntDscnt ) |
StorecntDscnt for given isa Version. Definition at line 134 of file AMDGPUWaitcntUtils.cpp.
References decodeDscnt(), decodeStorecnt(), DS_CNT, llvm::AMDGPU::Waitcnt::set(), STORE_CNT, and llvm::Version.
| unsigned llvm::AMDGPU::decodeVmcnt | ( | const IsaVersion & | Version, |
| unsigned | Waitcnt ) |
Waitcnt for given isa Version. Definition at line 1723 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by decodeWaitcnt(), and decodeWaitcnt().
| Waitcnt llvm::AMDGPU::decodeWaitcnt | ( | const IsaVersion & | Version, |
| unsigned | Encoded ) |
Definition at line 114 of file AMDGPUWaitcntUtils.cpp.
References decodeExpcnt(), decodeLgkmcnt(), decodeVmcnt(), DS_CNT, EXP_CNT, LOAD_CNT, llvm::AMDGPU::Waitcnt::set(), and llvm::Version.
Referenced by llvm::AMDGPUInstPrinter::printSWaitCnt().
| void llvm::AMDGPU::decodeWaitcnt | ( | const IsaVersion & | Version, |
| unsigned | Waitcnt, | ||
| unsigned & | Vmcnt, | ||
| unsigned & | Expcnt, | ||
| unsigned & | Lgkmcnt ) |
Decodes Vmcnt, Expcnt and Lgkmcnt from given Waitcnt for given isa Version, and writes decoded values into Vmcnt, Expcnt and Lgkmcnt respectively.
Should not be used on gfx12+, the instruction which needs it is deprecated
Vmcnt, Expcnt and Lgkmcnt are decoded as follows: Vmcnt = Waitcnt[3:0] (pre-gfx9) Vmcnt = Waitcnt[15:14,3:0] (gfx9,10) Vmcnt = Waitcnt[15:10] (gfx11) Expcnt = Waitcnt[6:4] (pre-gfx11) Expcnt = Waitcnt[2:0] (gfx11) Lgkmcnt = Waitcnt[11:8] (pre-gfx10) Lgkmcnt = Waitcnt[13:8] (gfx10) Lgkmcnt = Waitcnt[9:4] (gfx11)
Definition at line 1756 of file AMDGPUBaseInfo.cpp.
References decodeExpcnt(), decodeLgkmcnt(), decodeVmcnt(), and llvm::Version.
| bool llvm::AMDGPU::eliminateGVConstantExprUsesFromAllInstructions | ( | Module & | M, |
| function_ref< bool(const GlobalVariable &)> | Filter ) |
Iterates over all GlobalVariables in M, and whenever Filter returns true, replace all constant users of the GV with instructions.
Definition at line 133 of file AMDGPUMemoryUtils.cpp.
References llvm::convertUsersOfConstantsToInstructions(), llvm::Filter, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
| LLVM_READNONE int64_t llvm::AMDGPU::encode32BitLiteral | ( | int64_t | Imm, |
| OperandType | Type, | ||
| bool | IsLit ) |
Definition at line 3175 of file AMDGPUBaseInfo.cpp.
References llvm::Hi_32(), Imm, llvm::Lo_32(), OPERAND_INLINE_SPLIT_BARRIER_INT32, OPERAND_REG_IMM_BF16, OPERAND_REG_IMM_FP16, OPERAND_REG_IMM_FP32, OPERAND_REG_IMM_FP64, OPERAND_REG_IMM_INT32, OPERAND_REG_IMM_NOINLINE_FP16, OPERAND_REG_IMM_V2BF16, OPERAND_REG_IMM_V2FP16, OPERAND_REG_IMM_V2FP16_SPLAT, OPERAND_REG_IMM_V2FP32, OPERAND_REG_IMM_V2FP64, OPERAND_REG_IMM_V2INT16, OPERAND_REG_IMM_V2INT32, OPERAND_REG_INLINE_AC_FP32, OPERAND_REG_INLINE_AC_INT32, OPERAND_REG_INLINE_C_BF16, OPERAND_REG_INLINE_C_FP16, OPERAND_REG_INLINE_C_FP32, and OPERAND_REG_INLINE_C_INT32.
|
static |
Definition at line 1888 of file AMDGPUBaseInfo.cpp.
References encodeCustomOperandVal(), Idx, OPR_ID_DUPLICATE, OPR_ID_UNKNOWN, OPR_ID_UNSUPPORTED, and llvm::Size.
Referenced by llvm::AMDGPU::DepCtr::encodeDepCtr().
|
static |
Definition at line 1881 of file AMDGPUBaseInfo.cpp.
References OPR_VAL_INVALID.
Referenced by encodeCustomOperand().
|
static |
Definition at line 1819 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by encodeLoadcntDscnt(), and encodeStorecntDscnt().
| unsigned llvm::AMDGPU::encodeExpcnt | ( | const IsaVersion & | Version, |
| unsigned | Waitcnt, | ||
| unsigned | Expcnt ) |
Waitcnt with encoded Expcnt for given isa Version. Definition at line 1772 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by encodeWaitcnt().
| unsigned llvm::AMDGPU::encodeLgkmcnt | ( | const IsaVersion & | Version, |
| unsigned | Waitcnt, | ||
| unsigned | Lgkmcnt ) |
Waitcnt with encoded Lgkmcnt for given isa Version. Definition at line 1778 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by encodeWaitcnt().
|
static |
Definition at line 1807 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by encodeLoadcntDscnt().
| unsigned llvm::AMDGPU::encodeLoadcntDscnt | ( | const IsaVersion & | Version, |
| const Waitcnt & | Decoded ) |
Loadcnt and Dscnt components of Decoded encoded as an immediate that can be used with S_WAIT_LOADCNT_DSCNT for given isa Version. Definition at line 141 of file AMDGPUWaitcntUtils.cpp.
References DS_CNT, encodeLoadcntDscnt(), llvm::AMDGPU::Waitcnt::get(), LOAD_CNT, and llvm::Version.
Referenced by encodeLoadcntDscnt().
| unsigned llvm::AMDGPU::encodeLoadcntDscnt | ( | const IsaVersion & | Version, |
| unsigned | Loadcnt, | ||
| unsigned | Dscnt ) |
Loadcnt and Dscnt for given isa Version. Definition at line 1825 of file AMDGPUBaseInfo.cpp.
References encodeDscnt(), encodeLoadcnt(), getCombinedCountBitMask(), and llvm::Version.
|
static |
Definition at line 1813 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by encodeStorecntDscnt().
| unsigned llvm::AMDGPU::encodeStorecntDscnt | ( | const IsaVersion & | Version, |
| const Waitcnt & | Decoded ) |
Storecnt and Dscnt components of Decoded encoded as an immediate that can be used with S_WAIT_STORECNT_DSCNT for given isa Version. Definition at line 146 of file AMDGPUWaitcntUtils.cpp.
References DS_CNT, encodeStorecntDscnt(), llvm::AMDGPU::Waitcnt::get(), STORE_CNT, and llvm::Version.
Referenced by encodeStorecntDscnt().
| unsigned llvm::AMDGPU::encodeStorecntDscnt | ( | const IsaVersion & | Version, |
| unsigned | Storecnt, | ||
| unsigned | Dscnt ) |
Storecnt and Dscnt for given isa Version. Definition at line 1833 of file AMDGPUBaseInfo.cpp.
References encodeDscnt(), encodeStorecnt(), getCombinedCountBitMask(), and llvm::Version.
| unsigned llvm::AMDGPU::encodeVmcnt | ( | const IsaVersion & | Version, |
| unsigned | Waitcnt, | ||
| unsigned | Vmcnt ) |
Waitcnt with encoded Vmcnt for given isa Version. Definition at line 1763 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by encodeWaitcnt().
| unsigned llvm::AMDGPU::encodeWaitcnt | ( | const IsaVersion & | Version, |
| const Waitcnt & | Decoded ) |
Definition at line 122 of file AMDGPUWaitcntUtils.cpp.
References DS_CNT, encodeWaitcnt(), EXP_CNT, llvm::AMDGPU::Waitcnt::get(), LOAD_CNT, and llvm::Version.
Referenced by encodeWaitcnt().
| unsigned llvm::AMDGPU::encodeWaitcnt | ( | const IsaVersion & | Version, |
| unsigned | Vmcnt, | ||
| unsigned | Expcnt, | ||
| unsigned | Lgkmcnt ) |
Encodes Vmcnt, Expcnt and Lgkmcnt into Waitcnt for given isa Version.
Should not be used on gfx12+, the instruction which needs it is deprecated
Vmcnt, Expcnt and Lgkmcnt are encoded as follows: Waitcnt[2:0] = Expcnt (gfx11+) Waitcnt[3:0] = Vmcnt (pre-gfx9) Waitcnt[3:0] = Vmcnt[3:0] (gfx9,10) Waitcnt[6:4] = Expcnt (pre-gfx11) Waitcnt[9:4] = Lgkmcnt (gfx11) Waitcnt[11:8] = Lgkmcnt (pre-gfx10) Waitcnt[13:8] = Lgkmcnt (gfx10) Waitcnt[15:10] = Vmcnt (gfx11) Waitcnt[15:14] = Vmcnt[5:4] (gfx9,10)
Vmcnt, Expcnt and Lgkmcnt for given isa Version. Definition at line 1784 of file AMDGPUBaseInfo.cpp.
References encodeExpcnt(), encodeLgkmcnt(), encodeVmcnt(), getWaitcntBitMask(), and llvm::Version.
Evaluate the constant-folded result of v_rcp for Val, accounting for the hardware's denormal flushing on f32/f64 and its approximate rounding.
Returns std::nullopt if the hardware result is not guaranteed to match the exact reciprocal.
Definition at line 3761 of file AMDGPUBaseInfo.cpp.
References llvm::APFloatBase::BFloat(), llvm::APFloat::getOne(), llvm::APFloat::getSemantics(), llvm::APFloat::getZero(), llvm::APFloatBase::IEEEhalf(), llvm::APFloat::isDenormal(), and llvm::APFloat::isNegative().
Referenced by llvm::GCNTTIImpl::instCombineIntrinsic(), and llvm::AMDGPUTargetLowering::performRcpCombine().
| std::pair< FeatureError, StringRef > llvm::AMDGPU::fillAMDGPUFeatureMap | ( | StringRef | GPU, |
| const Triple & | T, | ||
| StringMap< bool > & | Features ) |
Fills Features map with default values for given target GPU.
Features contains overriding target features and this function returns default target features with entries overridden by Features.
Definition at line 723 of file AMDGPUTargetParser.cpp.
References addGPUFeatures(), llvm::Triple::AMDHSA, fillAMDGCNFeatureMap(), fillValidArchListAMDGCN(), G, llvm_unreachable, NO_ERROR, parseArchAMDGCN(), parseArchR600(), and T.
| void llvm::AMDGPU::fillValidArchListAMDGCN | ( | SmallVectorImpl< StringRef > & | Values, |
| Triple::SubArchType | SubArch = Triple::NoSubArch ) |
Append the valid AMDGCN GPU names to Values.
If SubArch is not NoSubArch, only GPUs compatible with that subarch (see isCPUValidForSubArch) are appended.
Definition at line 340 of file AMDGPUTargetParser.cpp.
References A(), I, isCPUValidForSubArch(), llvm::Triple::NoSubArch, and llvm::Values.
Referenced by fillAMDGPUFeatureMap().
| void llvm::AMDGPU::fillValidArchListR600 | ( | SmallVectorImpl< StringRef > & | Values | ) |
Definition at line 357 of file AMDGPUTargetParser.cpp.
References A(), and llvm::Values.
Definition at line 741 of file AMDGPUMCExpr.cpp.
References knownBitsMapHelper(), and tryFoldHelper().
Referenced by llvm::AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor(), and llvm::AMDGPUTargetAsmStreamer::EmitAMDKernelCodeT().
|
static |
Definition at line 57 of file AMDGPUAsanInstrumentation.cpp.
References Cond, llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateIntrinsicWithoutFolding(), llvm::IRBuilderBase::CreateIsNotNull(), llvm::MDBuilder::createUnlikelyBranchWeights(), llvm::IRBuilderBase::GetInsertPoint(), llvm::IRBuilderBase::getInt64Ty(), llvm::IRBuilderBase::SetInsertPoint(), and llvm::SplitBlockAndInsertIfThen().
Referenced by instrumentAddressImpl().
|
static |
Definition at line 97 of file AMDGPUAsanInstrumentation.cpp.
References Call, llvm::IRBuilderBase::CreateCall(), llvm::FunctionType::get(), llvm::IRBuilderBase::getVoidTy(), kAsanReportErrorTemplate, llvm::IRBuilderBase::SetInsertPoint(), and llvm::raw_svector_ostream::str().
Referenced by instrumentAddressImpl().
| LLVM_READONLY int32_t llvm::AMDGPU::getAddr64Inst | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
Referenced by llvm::SIInstrInfo::legalizeOperands().
Definition at line 509 of file AMDGPUTargetParser.cpp.
References getLocalMemorySize(), and getMaxHWAddressableLocalMemorySize().
Referenced by getAddressableLocalMemorySize(), and llvm::GCNSubtarget::initializeSubtargetDependencies().
| unsigned llvm::AMDGPU::getAddressableLocalMemorySize | ( | Triple::SubArchType | SubArch, |
| bool | FullSIMDMode ) |
Definition at line 514 of file AMDGPUTargetParser.cpp.
References getAddressableLocalMemorySize(), and getGPUKindFromSubArch().
Definition at line 388 of file AMDGPUTargetParser.cpp.
References FIXED_NUM_SGPRS_FOR_INIT_BUG, getFeatureBitset(), getIsaVersion(), getSubArch(), test, and llvm::Version.
Referenced by llvm::GCNSubtarget::getAddressableNumSGPRs(), llvm::AMDGPU::IsaInfo::getMaxNumSGPRs(), llvm::AMDGPU::IsaInfo::getMinNumSGPRs(), getSGPRAllocGranule(), and getSGPRAllocGranule().
| unsigned llvm::AMDGPU::getAddressableNumSGPRs | ( | Triple::SubArchType | SubArch | ) |
Definition at line 400 of file AMDGPUTargetParser.cpp.
References FIXED_NUM_SGPRS_FOR_INIT_BUG, getFeatureBitset(), getGPUKindFromSubArch(), getIsaVersion(), test, and llvm::Version.
Definition at line 461 of file AMDGPUTargetParser.cpp.
References getFeatureBitset(), getTotalNumVGPRs(), and llvm::Bitset< NumBits >::test().
Referenced by getAddressableNumVGPRs(), and llvm::GCNSubtarget::getAddressableNumVGPRs().
| unsigned llvm::AMDGPU::getAddressableNumVGPRs | ( | Triple::SubArchType | SubArch, |
| bool | IsWave32 ) |
Definition at line 476 of file AMDGPUTargetParser.cpp.
References getAddressableNumVGPRs(), and getGPUKindFromSubArch().
| LLVM_READONLY unsigned llvm::AMDGPU::getAddrSizeMIMGOp | ( | const MIMGBaseOpcodeInfo * | BaseOpcode, |
| const MIMGDimInfo * | Dim, | ||
| bool | IsA16, | ||
| bool | IsG16Supported ) |
Definition at line 342 of file AMDGPUBaseInfo.cpp.
References llvm::alignTo(), llvm::AMDGPU::MIMGBaseOpcodeInfo::Coordinates, llvm::divideCeil(), llvm::AMDGPU::MIMGBaseOpcodeInfo::G16, llvm::AMDGPU::MIMGBaseOpcodeInfo::Gradients, llvm::AMDGPU::MIMGBaseOpcodeInfo::LodOrClampOrMip, llvm::AMDGPU::MIMGDimInfo::NumCoords, llvm::AMDGPU::MIMGBaseOpcodeInfo::NumExtraArgs, and llvm::AMDGPU::MIMGDimInfo::NumGradients.
Referenced by llvm::AMDGPUDisassembler::convertMIMGInst(), and llvm::SIInstrInfo::verifyInstruction().
| LLVM_READONLY int32_t llvm::AMDGPU::getAGPRFormOp | ( | uint32_t | Opcode | ) |
Opcode which uses VGPRs for coupled operands. References LLVM_READONLY.
Referenced by getMFMANonMacAGPRFormOp().
| Align llvm::AMDGPU::getAlign | ( | const DataLayout & | DL, |
| const GlobalVariable * | GV ) |
Definition at line 29 of file AMDGPUMemoryUtils.cpp.
References DL, llvm::Value::getPointerAlignment(), and llvm::GlobalValue::getValueType().
Definition at line 219 of file AMDGPUBaseInfo.cpp.
References llvm::mdconst::extract_or_null(), and getDefaultAMDHSACodeObjectVersion().
Referenced by llvm::AMDGPUAsmPrinter::doInitialization(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernel(), llvm::AMDGPUSubtarget::getImplicitArgNumBytes(), llvm::AMDGPULegalizerInfo::legalizeTrapHsaQueuePtr(), llvm::AMDGPULowerKernelAttributesPass::run(), llvm::AMDGPUResourceUsageAnalysis::run(), llvm::AMDGPUResourceUsageAnalysisWrapperPass::runOnMachineFunction(), and llvm::AMDGPUDisassembler::setABIVersion().
Definition at line 232 of file AMDGPUBaseInfo.cpp.
References llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V4, llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V5, llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V6, and getDefaultAMDHSACodeObjectVersion().
Definition at line 165 of file AMDGPUTargetParser.cpp.
Definition at line 276 of file AMDGPUTargetParser.cpp.
Referenced by getCanonicalArchName(), llvm::AMDGPU::TargetID::print(), and llvm::AMDGPU::TargetID::printCanonicalTargetIDString().
| StringRef llvm::AMDGPU::getArchNameFromSubArch | ( | Triple::SubArchType | SubArch | ) |
Returns the canonical GPU name for an AMDGPU subarch, e.g.
AMDGPUSubArch1030 -> "gfx1030", AMDGPUSubArch9 -> "gfx9-generic", AMDGPUSubArch6 -> "gfx600". Returns "" for NoSubArch or a non-AMDGPU subarch. The major-only subarches map to their generic/lowest representative, matching the default subtarget for an unspecified -mcpu.
Definition at line 281 of file AMDGPUTargetParser.cpp.
References llvm::Triple::FirstAMDGPUSubArch, and llvm::Triple::LastAMDGPUSubArch.
Referenced by createAMDGPUMCSubtargetInfo(), and getGPUOrDefault().
Definition at line 300 of file AMDGPUTargetParser.cpp.
Referenced by getCanonicalArchName().
| unsigned llvm::AMDGPU::getAsynccntBitMask | ( | const IsaVersion & | Version | ) |
Version. Returns 0 for versions that do not support Asynccnt Definition at line 1699 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits().
|
inline |
Stage, for indexing per-stage data. Definition at line 112 of file AMDGPUAsyncStages.h.
References assert(), llvm::countr_zero(), llvm::has_single_bit(), and llvm::to_underlying().
Referenced by getAsyncStageName().
|
inline |
Stage. Definition at line 118 of file AMDGPUAsyncStages.h.
References AsyncStageNames, and getAsyncStageIndex().
Referenced by operator<<().
| unsigned llvm::AMDGPU::getBarrierMemberCountBitMask | ( | const IsaVersion & | Version | ) |
Version. Definition at line 1707 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
| std::pair< Register, unsigned > llvm::AMDGPU::getBaseWithConstantOffset | ( | MachineRegisterInfo & | MRI, |
| Register | Reg, | ||
| GISelValueTracking * | ValueTracking = nullptr, | ||
| bool | CheckNUW = false ) |
Returns base register and constant offset.
Definition at line 42 of file AMDGPUGlobalISelUtils.cpp.
References assert(), llvm::sampleprof::Base, Def, llvm::MachineInstr::Disjoint, llvm::getDefIgnoringCopies(), llvm::MIPatternMatch::m_Copy(), llvm::MIPatternMatch::m_GOr(), llvm::MIPatternMatch::m_GPtrAdd(), llvm::MIPatternMatch::m_ICst(), llvm::MIPatternMatch::m_MIFlags(), llvm::MIPatternMatch::m_MInstr(), llvm::MIPatternMatch::m_Reg(), llvm::GISelValueTracking::maskedValueIsZero(), llvm::MIPatternMatch::mi_match(), MRI, llvm::MachineInstr::NoUWrap, llvm::Offset, and Register.
Referenced by llvm::AMDGPURegisterBankInfo::applyMappingImpl(), computeIndirectRegIndex(), llvm::AMDGPURegisterBankInfo::setBufferOffsets(), and llvm::AMDGPULegalizerInfo::splitBufferOffsets().
| LLVM_READONLY int32_t llvm::AMDGPU::getBasicFromSDWAOp | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
Referenced by llvm::SIInstrInfo::verifyInstruction().
Definition at line 869 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by getCanBeVOPD(), getVOPDFull(), and getVOPDOpcode().
Definition at line 529 of file AMDGPUTargetParser.cpp.
Referenced by getBufferResourceNumRecordsWidth().
| std::optional< unsigned > llvm::AMDGPU::getBufferResourceNumRecordsWidth | ( | Triple::SubArchType | SubArch | ) |
Definition at line 537 of file AMDGPUTargetParser.cpp.
References getBufferResourceNumRecordsWidth(), and getGPUKindFromSubArch().
| unsigned llvm::AMDGPU::getBvhcntBitMask | ( | const IsaVersion & | Version | ) |
Version. Returns 0 for versions that do not support BVHcnt Definition at line 1675 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits().
| LLVM_READONLY CanBeVOPD llvm::AMDGPU::getCanBeVOPD | ( | unsigned | Opc, |
| unsigned | EncodingFamily, | ||
| bool | VOPD3 ) |
Definition at line 696 of file AMDGPUBaseInfo.cpp.
References getBitOp2(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::AMDGPU::VOPDXYInfo::IsX, llvm::AMDGPU::VOPDXYInfo::IsY, and Opc.
Referenced by shouldScheduleVOPDAdjacent(), and tryMatchVOPDPairVariant().
Definition at line 598 of file AMDGPUTargetParser.cpp.
References assert(), getArchNameAMDGCN(), getArchNameR600(), GK_NONE, parseArchAMDGCN(), parseArchR600(), and T.
|
inline |
Get co-execution info for a WMMA instruction, selecting the per-cycle slot pattern from the opcode (and operand formats for the F8F6F4 variants).
Definition at line 376 of file AMDGPUCoExecInfo.h.
References llvm::AMDGPU::CoExecInfo::build(), F16BF16_16x16x32, F4_32x16x128, F8F6F4_16x16x128, F8F6F4_16x16x128_BothF4, FP8BF8_16x16x128, FP8BF8_16x16x64, llvm::MachineOperand::getImm(), getMFMACoExecInfo(), IU8_16x16x64, llvm_unreachable, llvm::AMDGPU::WMMA::MATRIX_FMT_FP4, MI, Opc, TII, and Unknown.
|
inline |
Map a flavor to the co-execution class it occupies in a window slot.
Definition at line 131 of file AMDGPUCoExecInfo.h.
References CTRL, DMA, DS, F, Fence, llvm_unreachable, MultiCycleVALU, NUM_FLAVORS, Other, SALU, SingleCycleVALU, SMEM, TRANS, VALU, VMEM, and WMMA.
Referenced by llvm::GCNHazardRecognizer::getCoExecMaskForMI().
|
inline |
Return a human-readable name for a mask holding a single instruction class, as produced by getCoExecMask().
Definition at line 197 of file AMDGPUCoExecInfo.h.
References CTRL, DS, llvm_unreachable, SALU, SMEM, TRANS, VALU, VMEM, and WMMA.
|
static |
Definition at line 1793 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by encodeLoadcntDscnt(), and encodeStorecntDscnt().
| LLVM_READONLY int32_t llvm::AMDGPU::getCommuteOrig | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
Referenced by llvm::SIInstrInfo::commuteOpcode().
| LLVM_READONLY int32_t llvm::AMDGPU::getCommuteRev | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
Referenced by llvm::SIInstrInfo::commuteOpcode().
Definition at line 297 of file AMDGPUBaseInfo.cpp.
References AMDHSA_COV4, AMDHSA_COV5, AMDHSA_COV6, and llvm::AMDGPU::ImplicitArg::COMPLETION_ACTION_OFFSET.
| unsigned llvm::AMDGPU::getDefaultAMDHSACodeObjectVersion | ( | ) |
Definition at line 228 of file AMDGPUBaseInfo.cpp.
References DefaultAMDHSACodeObjectVersion.
Referenced by getAMDHSACodeObjectVersion(), and getAMDHSACodeObjectVersion().
Definition at line 286 of file AMDGPUBaseInfo.cpp.
References AMDHSA_COV4, AMDHSA_COV5, AMDHSA_COV6, and llvm::AMDGPU::ImplicitArg::DEFAULT_QUEUE_OFFSET.
| LLVM_READONLY int32_t llvm::AMDGPU::getDPPOp32 | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
| LLVM_READONLY int32_t llvm::AMDGPU::getDPPOp64 | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
| unsigned llvm::AMDGPU::getDscntBitMask | ( | const IsaVersion & | Version | ) |
Version. Returns 0 for versions that do not support DScnt Definition at line 1687 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits().
Definition at line 2377 of file AMDGPUBaseInfo.cpp.
Referenced by llvm::GCNSubtarget::computeOccupancy(), llvm::GCNSubtarget::getMaxNumVGPRs(), and llvm::SIMachineFunctionInfo::SIMachineFunctionInfo().
| CodeObjectVersion | is a value returned by getAMDHSACodeObjectVersion(). |
Definition at line 245 of file AMDGPUBaseInfo.cpp.
References llvm::Triple::AMDHSA, llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V4, llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V5, llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V6, llvm::report_fatal_error(), and T.
Referenced by llvm::AMDGPUTargetELFStreamer::finish().
|
static |
Map from a symbolic name for a sendmsg/hwreg asm operand to it's encoding.
Definition at line 46 of file AMDGPUAsmUtils.cpp.
References N, OPR_ID_UNKNOWN, OPR_ID_UNSUPPORTED, and llvm::Table.
Referenced by llvm::AMDGPU::Hwreg::getHwregId(), llvm::AMDGPU::SendMsg::getMsgId(), and llvm::AMDGPU::SendMsg::getMsgOpId().
| HWEvents llvm::AMDGPU::getEventsFor | ( | const MachineInstr & | Inst, |
| const GCNSubtarget & | ST, | ||
| bool | IsExpertMode, | ||
| bool | TgSplit ) |
Inst Definition at line 199 of file AMDGPUHWEvents.cpp.
References getEventsForImpl(), getExpertSchedulingEventType(), and TII.
|
static |
Definition at line 107 of file AMDGPUHWEvents.cpp.
References assert(), E, llvm::AMDGPU::Exp::ET_PARAM0, llvm::AMDGPU::Exp::ET_PARAM31, llvm::AMDGPU::Exp::ET_POS0, llvm::AMDGPU::Exp::ET_POS_LAST, getMUBUFIsBufferInv(), llvm::MachineInstr::getOpcode(), getSimplifiedVMEMEventsFor(), Imm, llvm::SIInstrInfo::isAtomicRet(), llvm::SIInstrInfo::isEXP(), llvm::SIInstrInfo::isGFX12CacheInvOrWBInst(), llvm::SIInstrInfo::isLDSDIR(), llvm::SIInstrInfo::isSBarrierSCCWrite(), llvm::SIInstrInfo::isVMEM(), llvm::MachineInstr::mayLoadOrStore(), llvm::MachineInstr::mayStore(), TII, llvm::SIInstrInfo::usesASYNC_CNT(), and llvm::SIInstrInfo::usesTENSOR_CNT().
Referenced by getEventsFor().
| unsigned llvm::AMDGPU::getExpcntBitMask | ( | const IsaVersion & | Version | ) |
Version. Definition at line 1679 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits(), and llvm::AMDGPUInstPrinter::printSWaitCnt().
|
static |
Definition at line 23 of file AMDGPUHWEvents.cpp.
References llvm::MachineInstr::getOpcode(), isDPMACCInstruction(), and TII.
Referenced by getEventsFor().
Definition at line 3412 of file AMDGPUBaseInfo.cpp.
Referenced by llvm::GCNTTIImpl::instCombineIntrinsic().
|
inline |
Definition at line 1809 of file AMDGPUBaseInfo.h.
References llvm::APInt::getBitsSet().
Referenced by simplifyExponentOnlyScaleArg().
| AMDGPUMCExpr::VariantKind llvm::AMDGPU::getExprKind | ( | const MCExpr * | Expr | ) |
Definition at line 773 of file AMDGPUMCExpr.cpp.
References llvm::AMDGPUMCExpr::AGVK_None, llvm::dyn_cast(), and E.
| const AMDGPUFeatureBitset & llvm::AMDGPU::getFeatureBitset | ( | GPUKind | AK | ) |
Returns AK's feature bitset, or an empty bitset if unknown.
Definition at line 315 of file AMDGPUTargetParser.cpp.
References DenseMapInfo< LocallyHashedType >::Empty.
Referenced by computeTargetIDFeatures(), getAddressableNumSGPRs(), getAddressableNumSGPRs(), getAddressableNumVGPRs(), getDefaultTargetIDFeatures(), getFeatureBitset(), getLDSAllocGranule(), getLDSEncodingGranule(), getLocalMemorySize(), getTotalNumVGPRs(), getVGPRAllocGranule(), isSramEccHardwiredOn(), and isXnackHardwiredOn().
| const AMDGPUFeatureBitset & llvm::AMDGPU::getFeatureBitset | ( | Triple::SubArchType | SubArch | ) |
Convenience overload of getFeatureBitset taking a triple subarch, which is mapped via getGPUKindFromSubArch.
Definition at line 322 of file AMDGPUTargetParser.cpp.
References getFeatureBitset(), and getGPUKindFromSubArch().
| const R600FeatureBitset & llvm::AMDGPU::getFeatureBitsetR600 | ( | GPUKind | AK | ) |
Returns R600 GPU AK's feature bitset, or an empty bitset if unknown.
Definition at line 326 of file AMDGPUTargetParser.cpp.
References DenseMapInfo< LocallyHashedType >::Empty.
| void llvm::AMDGPU::getFeatureNames | ( | const AMDGPUFeatureBitset & | Features, |
| SmallVectorImpl< StringRef > & | Names ) |
Appends the feature name of each bit set in Features to Names.
Definition at line 332 of file AMDGPUTargetParser.cpp.
References I, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Bitset< NumBits >::test().
Referenced by addGPUFeatures().
| LLVM_READONLY int32_t llvm::AMDGPU::getFlatScratchInstSSfromSV | ( | uint32_t | Opcode | ) |
Opcode of an SV (VADDR) form. References LLVM_READONLY.
| LLVM_READONLY int32_t llvm::AMDGPU::getFlatScratchInstSTfromSS | ( | uint32_t | Opcode | ) |
Opcode of an SS (SADDR) form. References LLVM_READONLY.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIRegisterInfo::eliminateFrameIndex(), and getFlatScratchSpillOpcode().
| LLVM_READONLY int32_t llvm::AMDGPU::getFlatScratchInstSVfromSS | ( | uint32_t | Opcode | ) |
Opcode of an SS (SADDR) form. References LLVM_READONLY.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIRegisterInfo::eliminateFrameIndex(), getFlatScratchSpillOpcode(), and llvm::SIInstrInfo::moveFlatAddrToVGPR().
| LLVM_READONLY int32_t llvm::AMDGPU::getFlatScratchInstSVfromSVS | ( | uint32_t | Opcode | ) |
Opcode of an SVS (SADDR + VADDR) form. References LLVM_READONLY.
Referenced by llvm::SIRegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 95 of file AMDGPUCoExecInfo.h.
References DMA, DS, F, Fence, llvm_unreachable, MultiCycleVALU, NUM_FLAVORS, Other, SALU, SingleCycleVALU, SMEM, TRANS, VMEM, and WMMA.
Referenced by llvm::AMDGPUCoExecSchedStrategy::dumpPickSummary(), and llvm::CandidateHeuristics::dumpRegionSummary().
| LLVM_READONLY FPType llvm::AMDGPU::getFPDstSelType | ( | unsigned | Opc | ) |
Definition at line 841 of file AMDGPUBaseInfo.cpp.
References FP4, FP8, None, and Opc.
Referenced by getDstSelForwardingOperand().
| LLVM_READONLY const GcnBufferFormatInfo * llvm::AMDGPU::getGcnBufferFormatInfo | ( | uint8_t | BitsPerComp, |
| uint8_t | NumComponents, | ||
| uint8_t | NumFormat, | ||
| const MCSubtargetInfo & | STI ) |
Definition at line 3419 of file AMDGPUBaseInfo.cpp.
References isGFX10(), and isGFX11Plus().
Referenced by getBufferFormatWithCompCount(), and simplifyAMDGCNMemoryIntrinsicDemanded().
| LLVM_READONLY const GcnBufferFormatInfo * llvm::AMDGPU::getGcnBufferFormatInfo | ( | uint8_t | Format, |
| const MCSubtargetInfo & | STI ) |
Definition at line 3430 of file AMDGPUBaseInfo.cpp.
References llvm::Format, isGFX10(), and isGFX11Plus().
| LLVM_READONLY int32_t llvm::AMDGPU::getGlobalSaddrOp | ( | uint32_t | Opcode | ) |
Opcode of a VADDR form. References LLVM_READONLY.
| LLVM_READONLY int32_t llvm::AMDGPU::getGlobalVaddrOp | ( | uint32_t | Opcode | ) |
Opcode of a SADDR form. References LLVM_READONLY.
Referenced by llvm::SIInstrInfo::moveFlatAddrToVGPR().
| AMDGPU::GPUKind llvm::AMDGPU::getGPUKindFromSubArch | ( | Triple::SubArchType | SubArch | ) |
Definition at line 180 of file AMDGPUTargetParser.cpp.
References llvm::Triple::FirstAMDGPUSubArch, GK_NONE, and llvm::Triple::LastAMDGPUSubArch.
Referenced by fillAMDGCNFeatureMap(), getAddressableLocalMemorySize(), getAddressableNumSGPRs(), getAddressableNumVGPRs(), getBufferResourceNumRecordsWidth(), getFeatureBitset(), getGPUKindFromTargetID(), getIsaVersion(), getLDSAllocGranule(), getLDSBankCount(), getLDSEncodingGranule(), getLocalMemorySize(), getMaxHWAddressableLocalMemorySize(), getMaxWavesPerEU(), getTotalNumVGPRs(), and getVGPRAllocGranule().
Definition at line 2366 of file AMDGPUBaseInfo.cpp.
References llvm::CallingConv::AMDGPU_PS, and F.
Referenced by generateEndPgm().
| LLVM_READONLY bool llvm::AMDGPU::getHasMatrixScale | ( | unsigned | Opc | ) |
Definition at line 599 of file AMDGPUBaseInfo.cpp.
References Opc.
Definition at line 275 of file AMDGPUBaseInfo.cpp.
References AMDHSA_COV4, AMDHSA_COV5, AMDHSA_COV6, and llvm::AMDGPU::ImplicitArg::HOSTCALL_PTR_OFFSET.
| LLVM_READONLY int32_t llvm::AMDGPU::getIfAddr64Inst | ( | uint32_t | Opcode | ) |
Check if Opcode is an Addr64 opcode.
Opcode if it is an Addr64 opcode, otherwise -1. References LLVM_READONLY.
Referenced by llvm::SIInstrInfo::legalizeOperands().
| const ImageDimIntrinsicInfo * llvm::AMDGPU::getImageDimIntrinsicByBaseOpcode | ( | unsigned | BaseOpcode, |
| unsigned | Dim ) |
Referenced by simplifyAMDGCNImageIntrinsic().
| const ImageDimIntrinsicInfo * llvm::AMDGPU::getImageDimIntrinsicInfo | ( | unsigned | Intr | ) |
Definition at line 2361 of file AMDGPUBaseInfo.cpp.
References F.
Referenced by llvm::SIMachineFunctionInfo::SIMachineFunctionInfo().
Definition at line 3006 of file AMDGPUBaseInfo.cpp.
References llvm::Literal, and llvm::Signed.
Referenced by getInlineEncodingV2F16(), getInlineEncodingV2I16(), getPKFMACF16InlineEncoding(), and isInlinableLiteralV216().
| LLVM_READNONE std::optional< unsigned > llvm::AMDGPU::getInlineEncodingV2BF16 | ( | uint32_t | Literal | ) |
Definition at line 3067 of file AMDGPUBaseInfo.cpp.
References llvm::Literal, and llvm::Signed.
Referenced by llvm::SITargetLowering::checkAsmConstraintValA(), and isInlinableLiteralV2BF16().
| LLVM_READNONE std::optional< unsigned > llvm::AMDGPU::getInlineEncodingV2F16 | ( | uint32_t | Literal | ) |
Definition at line 3095 of file AMDGPUBaseInfo.cpp.
References getInlineEncodingV216(), and llvm::Literal.
Referenced by llvm::SITargetLowering::checkAsmConstraintValA(), and isInlinableLiteralV2F16().
| LLVM_READNONE std::optional< unsigned > llvm::AMDGPU::getInlineEncodingV2I16 | ( | uint32_t | Literal | ) |
Definition at line 3061 of file AMDGPUBaseInfo.cpp.
References getInlineEncodingV216(), and llvm::Literal.
Referenced by llvm::SITargetLowering::checkAsmConstraintValA(), and isInlinableLiteralV2I16().
| StringLiteral llvm::AMDGPU::getInstCounterName | ( | InstCounterType | T | ) |
Definition at line 28 of file AMDGPUWaitcntUtils.cpp.
References ASYNC_CNT, BVH_CNT, DS_CNT, EXP_CNT, KM_CNT, llvm_unreachable, LOAD_CNT, NUM_INST_CNTS, SAMPLE_CNT, STORE_CNT, T, TENSOR_CNT, VA_VDST_RD, VA_VDST_WR, VM_VSRC, and X_CNT.
Referenced by llvm::AMDGPU::Waitcnt::print().
| std::optional< std::pair< unsigned, std::optional< unsigned > > > llvm::AMDGPU::getIntegerPairAttribute | ( | const Function & | F, |
| StringRef | Name, | ||
| bool | OnlyFirstRequired = false ) |
F's Name attribute in "first[,second]" format ("second" is optional unless OnlyFirstRequired is false).std::nullopt if attribute is not present.std::nullopt and emits error if one of the requested values cannot be converted to integer, or OnlyFirstRequired is false and "second" value is not present. Definition at line 1561 of file AMDGPUBaseInfo.cpp.
| std::pair< unsigned, unsigned > llvm::AMDGPU::getIntegerPairAttribute | ( | const Function & | F, |
| StringRef | Name, | ||
| std::pair< unsigned, unsigned > | Default, | ||
| bool | OnlyFirstRequired = false ) |
F's Name attribute in "first[,second]" format ("second" is optional unless OnlyFirstRequired is false).Default if attribute is not present.Default and emits error if one of the requested values cannot be converted to integer, or OnlyFirstRequired is false and "second" value is not present. Definition at line 1552 of file AMDGPUBaseInfo.cpp.
References llvm::Default, F, and getIntegerPairAttribute().
Referenced by llvm::AMDGPUMachineFunctionInfo::AMDGPUMachineFunctionInfo(), llvm::AMDGPUSubtarget::getFlatWorkGroupSizes(), getIntegerPairAttribute(), llvm::GCNSubtarget::getMaxNumVectorRegs(), llvm::AMDGPUSubtarget::getWavesPerEU(), llvm::AMDGPUSubtarget::getWavesPerEU(), and llvm::SIMachineFunctionInfo::SIMachineFunctionInfo().
| std::optional< SmallVector< unsigned > > llvm::AMDGPU::getIntegerVecAttribute | ( | const Function & | F, |
| StringRef | Name, | ||
| unsigned | Size ) |
Similar to the function above, but returns std::nullopt if any error occurs.
Definition at line 1596 of file AMDGPUBaseInfo.cpp.
References A(), assert(), llvm::StringRef::empty(), F, llvm::Size, llvm::StringRef::split(), and llvm::utostr().
| SmallVector< unsigned > llvm::AMDGPU::getIntegerVecAttribute | ( | const Function & | F, |
| StringRef | Name, | ||
| unsigned | Size, | ||
| unsigned | DefaultVal ) |
F's Name attribute. Size, with all elements set to DefaultVal, if any error occurs. The corresponding error will also be emitted. Definition at line 1587 of file AMDGPUBaseInfo.cpp.
References F, getIntegerVecAttribute(), and llvm::Size.
Referenced by llvm::AMDGPU::ClusterDimsAttr::get(), getIntegerVecAttribute(), getMaxNumWorkGroups(), and processUse().
| void llvm::AMDGPU::getInterestingMemoryOperands | ( | Module & | M, |
| Instruction * | I, | ||
| SmallVectorImpl< InterestingMemoryOperand > & | Interesting ) |
Get all the memory operands from the instruction that needs to be instrumented.
Definition at line 221 of file AMDGPUAsanInstrumentation.cpp.
References llvm::cast(), DL, llvm::dyn_cast(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::VectorType::get(), llvm::Value::getPointerAlignment(), llvm::Value::getType(), I, and llvm::isa().
| Intrinsic::ID llvm::AMDGPU::getIntrinsicID | ( | const MachineInstr & | I | ) |
Return the intrinsic ID for opcodes with the G_AMDGPU_INTRIN_ prefix.
These opcodes have an Intrinsic::ID operand similar to a GIntrinsic. But they are not actual instances of GIntrinsics, so we cannot use GIntrinsic::getIntrinsicID() on them.
Definition at line 24 of file AMDGPUInstrInfo.cpp.
References I.
Referenced by llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), and llvm::AMDGPUInstructionSelector::select().
| AMDGPU::IsaVersion llvm::AMDGPU::getIsaVersion | ( | StringRef | GPU | ) |
Definition at line 364 of file AMDGPUTargetParser.cpp.
References parseArchAMDGCN().
Referenced by llvm::AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor(), llvm::AMDGPU::DepCtr::encodeFieldHoldCnt(), getAddressableNumSGPRs(), getAddressableNumSGPRs(), llvm::AMDGPU::MCKernelDescriptor::getDefaultAmdhsaKernelDescriptor(), llvm::AMDGPU::IsaInfo::getMaxNumSGPRs(), llvm::AMDGPU::IsaInfo::getMinNumSGPRs(), getNSAMaxSize(), llvm::AMDGPU::IsaInfo::getNumExtraSGPRs(), getSGPRAllocGranule(), getSGPRAllocGranule(), getTotalNumSGPRs(), getTotalNumSGPRs(), initDefaultAMDKernelCodeT(), llvm::AMDGPU::IsaInfo::isSGPROccupancyLimited(), and llvm::AMDGPUInstPrinter::printSWaitCnt().
| AMDGPU::IsaVersion llvm::AMDGPU::getIsaVersion | ( | Triple::SubArchType | SubArch | ) |
Definition at line 369 of file AMDGPUTargetParser.cpp.
References getGPUKindFromSubArch().
| unsigned llvm::AMDGPU::getKmcntBitMask | ( | const IsaVersion & | Version | ) |
Version. Returns 0 for versions that do not support KMcnt Definition at line 1691 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits().
Definition at line 541 of file AMDGPUTargetParser.cpp.
References assert(), getFeatureBitset(), llvm::Bitset< NumBits >::none(), and llvm::Bitset< NumBits >::test().
Referenced by getLDSAllocGranule(), and llvm::GCNSubtarget::initializeSubtargetDependencies().
| unsigned llvm::AMDGPU::getLDSAllocGranule | ( | Triple::SubArchType | SubArch | ) |
Definition at line 565 of file AMDGPUTargetParser.cpp.
References getGPUKindFromSubArch(), and getLDSAllocGranule().
Definition at line 520 of file AMDGPUTargetParser.cpp.
Referenced by getLDSBankCount().
| unsigned llvm::AMDGPU::getLDSBankCount | ( | Triple::SubArchType | SubArch | ) |
Definition at line 525 of file AMDGPUTargetParser.cpp.
References getGPUKindFromSubArch(), and getLDSBankCount().
Definition at line 569 of file AMDGPUTargetParser.cpp.
References getFeatureBitset(), and llvm::Bitset< NumBits >::test().
Referenced by EmitPALMetadataCommon(), getLDSEncodingGranule(), and getLDSEncodingGranule().
| unsigned llvm::AMDGPU::getLDSEncodingGranule | ( | Triple::SubArchType | SubArch | ) |
Definition at line 585 of file AMDGPUTargetParser.cpp.
References getGPUKindFromSubArch(), and getLDSEncodingGranule().
| unsigned llvm::AMDGPU::getLgkmcntBitMask | ( | const IsaVersion & | Version | ) |
Version. Definition at line 1683 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits(), and llvm::AMDGPUInstPrinter::printSWaitCnt().
Definition at line 767 of file AMDGPUMCExpr.cpp.
References assert(), llvm::cast(), and isLitExpr().
| unsigned llvm::AMDGPU::getLoadcntBitMask | ( | const IsaVersion & | Version | ) |
Version. Returns 0 for versions that do not support LOADcnt Definition at line 1667 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits().
FullSIMDMode selects full-SIMD mode (four SIMDs) when true and half-SIMD mode (two SIMDs) otherwise. Definition at line 491 of file AMDGPUTargetParser.cpp.
References getFeatureBitset(), getMaxHWAddressableLocalMemorySize(), llvm::Size, and test.
Referenced by getAddressableLocalMemorySize(), getLocalMemorySize(), and llvm::GCNSubtarget::initializeSubtargetDependencies().
| unsigned llvm::AMDGPU::getLocalMemorySize | ( | Triple::SubArchType | SubArch, |
| bool | FullSIMDMode ) |
Definition at line 504 of file AMDGPUTargetParser.cpp.
References getGPUKindFromSubArch(), and getLocalMemorySize().
| LLVM_READONLY bool llvm::AMDGPU::getMAIIsDGEMM | ( | unsigned | Opc | ) |
Returns true if MAI operation is a double precision GEMM.
Definition at line 584 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by llvm::SIInstrInfo::isDGEMM().
| LLVM_READONLY bool llvm::AMDGPU::getMAIIsGFX940XDL | ( | unsigned | Opc | ) |
Definition at line 589 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by llvm::SIInstrInfo::isXDL().
| Triple::SubArchType llvm::AMDGPU::getMajorSubArch | ( | Triple::SubArchType | SubArch | ) |
Definition at line 187 of file AMDGPUTargetParser.cpp.
References llvm::Triple::FirstAMDGPUSubArch, llvm::Triple::LastAMDGPUSubArch, llvm::Triple::NoSubArch, and X.
Referenced by llvm::AMDGPUTargetMachine::AMDGPUTargetMachine(), computeDefaultGeneration(), llvm::GCNTargetMachine::getSubtargetImpl(), isSubArchCompatible(), mergeSubArch(), and llvm::AMDGPU::TargetID::providesFor().
| LLVM_READONLY int llvm::AMDGPU::getMaskedMIMGOp | ( | unsigned | Opc, |
| unsigned | NewChannels ) |
Definition at line 334 of file AMDGPUBaseInfo.cpp.
References llvm::AMDGPU::MIMGInfo::BaseOpcode, getMIMGInfo(), llvm::AMDGPU::MIMGInfo::IndexedRsrc, llvm::AMDGPU::MIMGInfo::IndexedSamp, llvm::AMDGPU::MIMGInfo::MIMGEncoding, Opc, llvm::AMDGPU::MIMGInfo::Opcode, and llvm::AMDGPU::MIMGInfo::VAddrDwords.
|
constexpr |
Definition at line 283 of file AMDGPUTargetParser.h.
Referenced by annotateGroupSizeLoadWithRangeMD(), llvm::GCNSubtarget::getMaxFlatWorkGroupSize(), and llvm::R600Subtarget::getMaxFlatWorkGroupSize().
LDS size queries.
getMaxHWAddressableLocalMemorySize returns the architectural limit that one work-group can address. It is independent of execution mode.
getLocalMemorySize returns the LDS available to all work-groups sharing a physical block, which is the LDS capacity used to compute occupancy. In full-SIMD mode, a work-group runs on four SIMDs and the query returns the full physical block. In half-SIMD mode, it runs on two SIMDs and the query returns half the block.
getAddressableLocalMemorySize returns the amount one work-group can allocate:
min(getMaxHWAddressableLocalMemorySize(), getLocalMemorySize())
The physical LDS block belongs to a WGP on gfx10/11/12 and to a CU otherwise. On gfx6 and gfx10/11/12, the block is twice the address limit, so a work-group cannot address the entire block in full-SIMD mode.
The mode columns below show local/addressable LDS, in KiB:
GPU address limit full-SIMD half-SIMD gfx600 32 64/32 n/a (always full-SIMD) gfx900 64 64/64 n/a (always full-SIMD) gfx1030 64 128/64 64/64 gfx1250 320 320/320 n/a (always full-SIMD)
Definition at line 481 of file AMDGPUTargetParser.cpp.
Referenced by getAddressableLocalMemorySize(), getLocalMemorySize(), and getMaxHWAddressableLocalMemorySize().
| unsigned llvm::AMDGPU::getMaxHWAddressableLocalMemorySize | ( | Triple::SubArchType | SubArch | ) |
Definition at line 487 of file AMDGPUTargetParser.cpp.
References getGPUKindFromSubArch(), and getMaxHWAddressableLocalMemorySize().
| unsigned llvm::AMDGPU::getMaxNumUserSGPRs | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2420 of file AMDGPUBaseInfo.cpp.
References isGFX1250Plus().
Referenced by llvm::GCNUserSGPRUsageInfo::allocKernargPreloadSGPRs(), getComputePGMRSrc2Reg(), llvm::GCNSubtarget::getMaxNumUserSGPRs(), and llvm::GCNUserSGPRUsageInfo::getNumFreeUserSGPRs().
| SmallVector< unsigned > llvm::AMDGPU::getMaxNumWorkGroups | ( | const Function & | F | ) |
Definition at line 1633 of file AMDGPUBaseInfo.cpp.
References F, and getIntegerVecAttribute().
Referenced by llvm::GCNTTIImpl::collectKernelLaunchBounds(), and llvm::SIMachineFunctionInfo::SIMachineFunctionInfo().
Definition at line 589 of file AMDGPUTargetParser.cpp.
Referenced by getMaxWavesPerEU(), llvm::AMDGPU::IsaInfo::getMaxWorkGroupsPerCU(), llvm::AMDGPU::IsaInfo::getMinNumSGPRs(), llvm::AMDGPU::IsaInfo::getMinNumVGPRs(), llvm::AMDGPU::IsaInfo::getNumWavesPerEUWithNumVGPRs(), and llvm::AMDGPU::IsaInfo::getOccupancyWithNumSGPRs().
| unsigned llvm::AMDGPU::getMaxWavesPerEU | ( | Triple::SubArchType | SubArch | ) |
Definition at line 594 of file AMDGPUTargetParser.cpp.
References getGPUKindFromSubArch(), and getMaxWavesPerEU().
| LLVM_READONLY int32_t llvm::AMDGPU::getMCOpcode | ( | uint32_t | Opcode, |
| unsigned | Gen ) |
Definition at line 865 of file AMDGPUBaseInfo.cpp.
References Subtarget.
Referenced by llvm::SIInstrInfo::pseudoToMCOpcode().
| MCRegister llvm::AMDGPU::getMCReg | ( | MCRegister | Reg, |
| const MCSubtargetInfo & | STI ) |
If Reg is a pseudo reg, return the correct hardware register given STI otherwise return Reg.
Definition at line 2667 of file AMDGPUBaseInfo.cpp.
References llvm::Triple::getArch(), llvm::MCSubtargetInfo::getTargetTriple(), MAP_REG2REG, llvm::Triple::r600, and Reg.
Referenced by llvm::AMDGPUDisassembler::createRegOperand(), and llvm::AMDGPUMCInstLower::lowerOperand().
| LLVM_READONLY const MFMA_F8F6F4_Info * llvm::AMDGPU::getMFMA_F8F6F4_WithFormatArgs | ( | unsigned | CBSZ, |
| unsigned | BLGP, | ||
| unsigned | F8F8Opcode ) |
Definition at line 620 of file AMDGPUBaseInfo.cpp.
References mfmaScaleF8F6F4FormatToNumRegs().
Referenced by llvm::AMDGPUDisassembler::convertMAIInst().
| llvm::AMDGPU::CoExecInfo llvm::AMDGPU::getMFMACoExecInfo | ( | unsigned | Opcode | ) |
Get co-execution info for a gfx950 MFMA instruction.
The occupancy (cycles until the next MFMA may issue) is expressed as the first stage carrying the WMMA bit.
Definition at line 65 of file AMDGPUCoExecSchedStrategy.cpp.
References allowCoExec(), llvm::AMDGPU::CoExecInfo::build(), DS, I, llvm::AMDGPU::CoExecSlotInfo::Mask, MaxCoExecStages, None, llvm::AMDGPU::CoExecInfo::Pattern, SALU, llvm::AMDGPU::CoExecInfo::Slots, llvm::AMDGPU::CoExecInfo::TotalWindow, VALU, VMEM, and WMMA.
Referenced by getCoExecInfo().
| LLVM_READONLY int32_t llvm::AMDGPU::getMFMAEarlyClobberOp | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
Referenced by getMFMANonMacAGPRFormOp(), and llvm::SIInstrInfo::pseudoToMCOpcode().
| LLVM_READONLY const MIMGBaseOpcodeInfo * llvm::AMDGPU::getMIMGBaseOpcode | ( | unsigned | Opc | ) |
Definition at line 329 of file AMDGPUBaseInfo.cpp.
References getMIMGBaseOpcodeInfo(), getMIMGInfo(), and Opc.
| LLVM_READONLY const MIMGBaseOpcodeInfo * llvm::AMDGPU::getMIMGBaseOpcodeInfo | ( | unsigned | BaseOpcode | ) |
| LLVM_READONLY const MIMGBiasMappingInfo * llvm::AMDGPU::getMIMGBiasMappingInfo | ( | unsigned | Bias | ) |
References LLVM_READONLY.
Referenced by simplifyAMDGCNImageIntrinsic().
| LLVM_READONLY const MIMGDimInfo * llvm::AMDGPU::getMIMGDimInfo | ( | unsigned | DimEnum | ) |
Referenced by simplifyAMDGCNImageIntrinsic().
| LLVM_READONLY const MIMGDimInfo * llvm::AMDGPU::getMIMGDimInfoByAsmSuffix | ( | StringRef | AsmSuffix | ) |
| LLVM_READONLY const MIMGDimInfo * llvm::AMDGPU::getMIMGDimInfoByEncoding | ( | uint8_t | DimEnc | ) |
References LLVM_READONLY.
Referenced by llvm::AMDGPUDisassembler::convertMIMGInst(), and llvm::SIInstrInfo::verifyInstruction().
| LLVM_READONLY StringRef llvm::AMDGPU::getMIMGDimInfoStr | ( | StringTable::Offset | ) |
References LLVM_READONLY.
| LLVM_READONLY const MIMGG16MappingInfo * llvm::AMDGPU::getMIMGG16MappingInfo | ( | unsigned | G | ) |
References G, LLVM_READONLY, and Opc.
| LLVM_READONLY const MIMGInfo * llvm::AMDGPU::getMIMGInfo | ( | unsigned | Opc | ) |
References LLVM_READONLY, and Opc.
Referenced by llvm::AMDGPUDisassembler::convertMIMGInst(), getMaskedMIMGOp(), getMIMGBaseOpcode(), getSimplifiedVMEMEventsFor(), and llvm::SIInstrInfo::verifyInstruction().
| LLVM_READONLY const MIMGLZMappingInfo * llvm::AMDGPU::getMIMGLZMappingInfo | ( | unsigned | L | ) |
Referenced by simplifyAMDGCNImageIntrinsic().
| LLVM_READONLY const MIMGMIPMappingInfo * llvm::AMDGPU::getMIMGMIPMappingInfo | ( | unsigned | MIP | ) |
References LLVM_READONLY.
Referenced by simplifyAMDGCNImageIntrinsic().
| LLVM_READONLY const MIMGOffsetMappingInfo * llvm::AMDGPU::getMIMGOffsetMappingInfo | ( | unsigned | Offset | ) |
References LLVM_READONLY, and llvm::Offset.
Referenced by simplifyAMDGCNImageIntrinsic().
| LLVM_READONLY int llvm::AMDGPU::getMIMGOpcode | ( | unsigned | BaseOpcode, |
| unsigned | MIMGEncoding, | ||
| unsigned | VDataDwords, | ||
| unsigned | VAddrDwords, | ||
| bool | IndexedRsrc, | ||
| bool | IndexedSamp ) |
Definition at line 320 of file AMDGPUBaseInfo.cpp.
Referenced by llvm::AMDGPUDisassembler::convertMIMGInst(), llvm::AMDGPULegalizerInfo::legalizeBVHDualOrBVH8IntersectRayIntrinsic(), and llvm::AMDGPULegalizerInfo::legalizeBVHIntersectRayIntrinsic().
|
constexpr |
Definition at line 280 of file AMDGPUTargetParser.h.
Referenced by llvm::GCNSubtarget::getMinFlatWorkGroupSize(), and llvm::R600Subtarget::getMinFlatWorkGroupSize().
|
static |
Definition at line 24 of file AMDGPUAsanInstrumentation.cpp.
References getRedzoneSizeForScale().
Referenced by getRedzoneSizeForGlobal().
|
constexpr |
Definition at line 266 of file AMDGPUTargetParser.h.
Referenced by llvm::GCNSubtarget::getMinWavesPerEU(), and llvm::R600Subtarget::getMinWavesPerEU().
| LLVM_READONLY int llvm::AMDGPU::getMTBUFBaseOpcode | ( | unsigned | Opc | ) |
Definition at line 490 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY int llvm::AMDGPU::getMTBUFElements | ( | unsigned | Opc | ) |
Definition at line 501 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY bool llvm::AMDGPU::getMTBUFHasSoffset | ( | unsigned | Opc | ) |
Definition at line 516 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY bool llvm::AMDGPU::getMTBUFHasSrsrc | ( | unsigned | Opc | ) |
Definition at line 511 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY bool llvm::AMDGPU::getMTBUFHasVAddr | ( | unsigned | Opc | ) |
Definition at line 506 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY int llvm::AMDGPU::getMTBUFOpcode | ( | unsigned | BaseOpc, |
| unsigned | Elements ) |
Definition at line 495 of file AMDGPUBaseInfo.cpp.
| LLVM_READONLY int llvm::AMDGPU::getMUBUFBaseOpcode | ( | unsigned | Opc | ) |
Definition at line 521 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY int llvm::AMDGPU::getMUBUFElements | ( | unsigned | Opc | ) |
Definition at line 532 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY bool llvm::AMDGPU::getMUBUFHasSoffset | ( | unsigned | Opc | ) |
Definition at line 547 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY bool llvm::AMDGPU::getMUBUFHasSrsrc | ( | unsigned | Opc | ) |
Definition at line 542 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY bool llvm::AMDGPU::getMUBUFHasVAddr | ( | unsigned | Opc | ) |
Definition at line 537 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY bool llvm::AMDGPU::getMUBUFIsBufferInv | ( | unsigned | Opc | ) |
Definition at line 552 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by getEventsForImpl().
| LLVM_READONLY int llvm::AMDGPU::getMUBUFOpcode | ( | unsigned | BaseOpc, |
| unsigned | Elements ) |
Definition at line 526 of file AMDGPUBaseInfo.cpp.
| LLVM_READONLY bool llvm::AMDGPU::getMUBUFTfe | ( | unsigned | Opc | ) |
Definition at line 557 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by llvm::SITargetLowering::AddMemOpInit().
Definition at line 262 of file AMDGPUBaseInfo.cpp.
References AMDHSA_COV4, AMDHSA_COV5, AMDHSA_COV6, and llvm::AMDGPU::ImplicitArg::MULTIGRID_SYNC_ARG_OFFSET.
|
static |
Map from the encoding of a sendmsg/hwreg asm operand to it's name.
Definition at line 25 of file AMDGPUAsmUtils.cpp.
References llvm::First, N, and llvm::Table.
Referenced by llvm::AMDGPU::Hwreg::getHwreg(), llvm::AMDGPU::SendMsg::getMsgName(), llvm::AMDGPU::SendMsg::getMsgOpName(), and llvm::AMDGPU::WaitEvent::getWaitEventMaskName().
| unsigned llvm::AMDGPU::getNSAMaxSize | ( | const MCSubtargetInfo & | STI, |
| bool | HasSampler ) |
Definition at line 2409 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::getCPU(), getIsaVersion(), and llvm::Version.
Referenced by llvm::GCNSubtarget::getNSAMaxSize().
|
constexpr |
Get the null pointer value for the given address space.
Definition at line 198 of file AMDGPUAddrSpace.h.
Referenced by isKnownNonNull(), isKnownNonNull(), isPtrKnownNeverNull(), and llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast().
| unsigned llvm::AMDGPU::getNumFlatOffsetBits | ( | const MCSubtargetInfo & | ST | ) |
For pre-GFX12 FLAT instructions the offset must be positive; MSB is ignored and forced to zero.
Definition at line 3337 of file AMDGPUBaseInfo.cpp.
Referenced by llvm::SIInstrInfo::isLegalFLATOffset(), and llvm::SIInstrInfo::splitFlatOffset().
| unsigned llvm::AMDGPU::getNumNamedBarriersDeclared | ( | const DataLayout & | DL, |
| const GlobalVariable & | GV ) |
GV. Definition at line 95 of file AMDGPUMemoryUtils.cpp.
References assert(), DL, llvm::GlobalVariable::getGlobalSize(), isNamedBarrier(), and NamedBarrierTypeSizeInBytes.
Referenced by llvm::AMDGPUMachineFunctionInfo::allocateBarrierGlobal().
Definition at line 261 of file AMDGPUTargetParser.h.
Referenced by llvm::GCNSubtarget::GCNSubtarget(), llvm::AMDGPU::IsaInfo::getMaxWorkGroupsPerCU(), and llvm::AMDGPU::IsaInfo::getWavesPerEUForWorkGroup().
|
inline |
Definition at line 1660 of file AMDGPUBaseInfo.h.
References getOperandSize().
|
inline |
Definition at line 1612 of file AMDGPUBaseInfo.h.
References llvm_unreachable, OPERAND_INLINE_SPLIT_BARRIER_INT32, OPERAND_KIMM16, OPERAND_KIMM32, OPERAND_KIMM64, OPERAND_REG_IMM_BF16, OPERAND_REG_IMM_FP16, OPERAND_REG_IMM_FP32, OPERAND_REG_IMM_FP64, OPERAND_REG_IMM_INT16, OPERAND_REG_IMM_INT32, OPERAND_REG_IMM_INT64, OPERAND_REG_IMM_NOINLINE_FP16, OPERAND_REG_IMM_NOINLINE_V2FP16, OPERAND_REG_IMM_V2BF16, OPERAND_REG_IMM_V2FP16, OPERAND_REG_IMM_V2FP16_SPLAT, OPERAND_REG_IMM_V2FP32, OPERAND_REG_IMM_V2FP64, OPERAND_REG_IMM_V2INT16, OPERAND_REG_IMM_V2INT32, OPERAND_REG_IMM_V2INT64, OPERAND_REG_INLINE_AC_FP32, OPERAND_REG_INLINE_AC_FP64, OPERAND_REG_INLINE_AC_INT32, OPERAND_REG_INLINE_C_BF16, OPERAND_REG_INLINE_C_FP16, OPERAND_REG_INLINE_C_FP32, OPERAND_REG_INLINE_C_FP64, OPERAND_REG_INLINE_C_INT16, OPERAND_REG_INLINE_C_INT32, OPERAND_REG_INLINE_C_INT64, OPERAND_REG_INLINE_C_V2BF16, OPERAND_REG_INLINE_C_V2FP16, and OPERAND_REG_INLINE_C_V2INT16.
Referenced by getOperandSize().
| LLVM_READNONE std::optional< unsigned > llvm::AMDGPU::getPKFMACF16InlineEncoding | ( | uint32_t | Literal, |
| bool | IsGFX11Plus ) |
Definition at line 3103 of file AMDGPUBaseInfo.cpp.
References getInlineEncodingV216(), llvm::Hi, llvm::Literal, llvm::Lo, and llvm::Signed.
Referenced by isPKFMACF16InlineConstant().
|
inline |
Definition at line 39 of file AMDGPUCoExecSchedStrategy.h.
References CritResourceBalance, CritResourceDep, llvm_unreachable, MemoryPipeline, None, NUM_REASONS, and Stall.
Referenced by llvm::AMDGPUCoExecSchedStrategy::dumpPickSummary().
Given SizeInBytes of the Value to be instrunmented, Returns the redzone size corresponding to it.
Definition at line 28 of file AMDGPUAsanInstrumentation.cpp.
References assert(), and getMinRedzoneSizeForGlobal().
|
static |
Definition at line 18 of file AMDGPUAsanInstrumentation.cpp.
Referenced by getMinRedzoneSizeForGlobal().
| unsigned llvm::AMDGPU::getRegBitWidth | ( | const MCRegisterClass & | RC | ) |
Get the size in bits of a register from the register class RC.
Definition at line 2917 of file AMDGPUBaseInfo.cpp.
References llvm::MCRegisterClass::getID(), and getRegBitWidth().
Get the size in bits of a register from the register class RC.
Definition at line 2759 of file AMDGPUBaseInfo.cpp.
References llvm_unreachable.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIInstrInfo::canInsertSelect(), getRegBitWidth(), llvm::SIRegisterInfo::getRegSplitParts(), and llvm::SIInstrInfo::isLegalRegOperand().
| unsigned llvm::AMDGPU::getSamplecntBitMask | ( | const IsaVersion & | Version | ) |
Version. Returns 0 for versions that do not support SAMPLEcnt Definition at line 1671 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits().
Definition at line 444 of file AMDGPUTargetMachine.cpp.
References F, llvm::Attribute::getValueAsString(), and llvm::Attribute::isValid().
Referenced by llvm::GCNTargetMachine::createMachineScheduler(), llvm::GCNSubtarget::overrideSchedPolicy(), and useNoopPostScheduler().
| LLVM_READONLY int32_t llvm::AMDGPU::getSDWAOp | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
Definition at line 412 of file AMDGPUTargetParser.cpp.
References getAddressableNumSGPRs(), getIsaVersion(), getSubArch(), and llvm::Version.
Referenced by createOccupancy(), llvm::AMDGPU::IsaInfo::getMaxNumSGPRs(), llvm::AMDGPU::IsaInfo::getMinNumSGPRs(), llvm::AMDGPU::IsaInfo::getOccupancyWithNumSGPRs(), and llvm::GCNSubtarget::getSGPRAllocGranule().
| unsigned llvm::AMDGPU::getSGPRAllocGranule | ( | Triple::SubArchType | SubArch | ) |
Definition at line 421 of file AMDGPUTargetParser.cpp.
References getAddressableNumSGPRs(), getIsaVersion(), and llvm::Version.
Deduce the least significant bit aligned shift and mask values for a binary Complement Value (as they're defined in SIDefines.h as C_*) as a returned pair<shift, mask>.
That is to say Value == ~(mask << shift)
For example, given C_00B848_FWD_PROGRESS (i.e., 0x7FFFFFFF) from SIDefines.h, this will return the pair as (31,1).
Definition at line 27 of file SIDefinesUtils.h.
| HWEvents llvm::AMDGPU::getSimplifiedVMEMEventsFor | ( | const MachineInstr & | Inst, |
| const SIInstrInfo & | TII ) |
| Inst | A VMEM instruction (as per SIInstrInfo::isVMEM). |
Inst. The returned mask is not exhaustive, but is guaranteed to be a subset of the mask that'd be returned by getEventsFor.Useful to quickly categorize VMEM instructions without having to fetch all events.
Definition at line 59 of file AMDGPUHWEvents.cpp.
References assert(), llvm::AMDGPU::MIMGBaseOpcodeInfo::BVH, getMIMGBaseOpcodeInfo(), getMIMGInfo(), llvm::MachineInstr::getOpcode(), llvm::SIInstrInfo::isAtomicNoRet(), llvm::SIInstrInfo::isFLAT(), llvm::SIInstrInfo::isImage(), llvm::SIInstrInfo::isVMEM(), llvm::SIInstrInfo::isVSAMPLE(), llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), llvm::SIInstrInfo::mayWriteLDSThroughDMA(), llvm::AMDGPU::MIMGBaseOpcodeInfo::MSAA, llvm::AMDGPU::MIMGBaseOpcodeInfo::Sampler, and TII.
Referenced by getEventsForImpl().
| LLVM_READONLY bool llvm::AMDGPU::getSMEMIsBuffer | ( | unsigned | Opc | ) |
Definition at line 562 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by llvm::AMDGPUDisassembler::isBufferInstruction(), and supportsScaleOffset().
| std::optional< int64_t > llvm::AMDGPU::getSMRDEncodedLiteralOffset32 | ( | const MCSubtargetInfo & | ST, |
| int64_t | ByteOffset ) |
Definition at line 3327 of file AMDGPUBaseInfo.cpp.
References convertSMRDOffsetUnits(), isCI(), isDwordAligned(), and llvm::isUInt().
| std::optional< int64_t > llvm::AMDGPU::getSMRDEncodedOffset | ( | const MCSubtargetInfo & | ST, |
| int64_t | ByteOffset, | ||
| bool | IsBuffer, | ||
| bool | HasSOffset = false ) |
ByteOffset in the SMRD offset field, or std::nullopt if it won't fit. On GFX9 and GFX10 S_LOAD instructions have a signed offset, on other subtargets it is unsigned. S_BUFFER has an unsigned offset for all subtargets. Definition at line 3298 of file AMDGPUBaseInfo.cpp.
References assert(), convertSMRDOffsetUnits(), hasSMEMByteOffset(), hasSMRDSignedImmOffset(), isDwordAligned(), isGFX12Plus(), llvm::isInt(), and isLegalSMRDEncodedUnsignedOffset().
| LLVM_READONLY int32_t llvm::AMDGPU::getSOPKOp | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
| LLVM_READONLY int32_t llvm::AMDGPU::getSOPPWithRelaxation | ( | uint32_t | Opcode | ) |
|
inlinestatic |
Definition at line 150 of file AMDGPUMCExpr.h.
References llvm::MCSymbolRefExpr::getKind().
Referenced by needsPCRel().
|
inline |
| unsigned llvm::AMDGPU::getStorecntBitMask | ( | const IsaVersion & | Version | ) |
Version. returns 0 for versions that do not support STOREcnt or VScnt. STOREcnt and VScnt are the same counter, the name used depends on the ISA version. Definition at line 1703 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits().
| Triple::SubArchType llvm::AMDGPU::getSubArch | ( | GPUKind | AK | ) |
Definition at line 170 of file AMDGPUTargetParser.cpp.
References llvm::Triple::NoSubArch.
Referenced by llvm::AMDGPUTargetMachine::AMDGPUTargetMachine(), llvm::AMDGPUAsmPrinter::doInitialization(), getAddressableNumSGPRs(), getSGPRAllocGranule(), getSubArchFromGPUName(), llvm::GCNTargetMachine::getSubtargetImpl(), getTotalNumSGPRs(), isCPUValidForSubArch(), and llvm::AMDGPU::TargetID::providesFor().
| Triple::SubArchType llvm::AMDGPU::getSubArchFromGPUName | ( | StringRef | CPU | ) |
Returns the preferred subarch for a GPU name CPU, or NoSubArch if unrecognized.
Definition at line 175 of file AMDGPUTargetParser.cpp.
References getSubArch(), and parseArchAMDGCN().
| StringRef llvm::AMDGPU::getSubArchName | ( | Triple::SubArchType | SubArch | ) |
Returns the triple subarch name for an AMDGPU subarch, e.g.
AMDGPUSubArch900 -> "amdgpu9.00". Returns "amdgpu" for NoSubArch.
Definition at line 289 of file AMDGPUTargetParser.cpp.
References assert(), llvm::Triple::FirstAMDGPUSubArch, llvm::Triple::LastAMDGPUSubArch, and llvm::Triple::NoSubArch.
Referenced by llvm::Triple::getArchName().
Definition at line 34 of file AMDGPUMemoryUtils.cpp.
References llvm::AMDGPU::SyntheticAperture::BARRIER, llvm::AMDGPUAS::BARRIER, and llvm::AMDGPU::SyntheticAperture::None.
Referenced by llvm::AMDGPULegalizerInfo::getSegmentAperture().
|
static |
Definition at line 68 of file AMDGPUMemoryUtils.cpp.
References llvm::dyn_cast(), and llvm::GlobalValue::getValueType().
Referenced by isNamedBarrier().
| LLVM_READONLY unsigned llvm::AMDGPU::getTemporalHintType | ( | const MCInstrDesc | TID | ) |
Definition at line 820 of file AMDGPUBaseInfo.cpp.
References llvm::MCInstrDesc::getOpcode(), isAsyncStore(), llvm::SIInstrFlags::isAtomic(), isTensorStore(), llvm::MCInstrDesc::mayLoad(), llvm::MCInstrDesc::mayStore(), Opc, llvm::AMDGPU::CPol::TH_TYPE_ATOMIC, llvm::AMDGPU::CPol::TH_TYPE_LOAD, and llvm::AMDGPU::CPol::TH_TYPE_STORE.
Definition at line 374 of file AMDGPUTargetParser.cpp.
References getIsaVersion(), getSubArch(), and llvm::Version.
Referenced by createOccupancy(), llvm::AMDGPU::IsaInfo::getMaxNumSGPRs(), llvm::AMDGPU::IsaInfo::getMinNumSGPRs(), llvm::AMDGPU::IsaInfo::getOccupancyWithNumSGPRs(), and llvm::GCNSubtarget::getTotalNumSGPRs().
| unsigned llvm::AMDGPU::getTotalNumSGPRs | ( | Triple::SubArchType | SubArch | ) |
Definition at line 381 of file AMDGPUTargetParser.cpp.
References getIsaVersion(), and llvm::Version.
| uint32_t llvm::AMDGPU::getTotalNumVGPRs | ( | bool | has90AInsts, |
| uint32_t | ArgNumAGPR, | ||
| uint32_t | ArgNumVGPR ) |
Definition at line 2581 of file AMDGPUBaseInfo.cpp.
References llvm::alignTo().
IsWave32 selects the wavefront size. Definition at line 446 of file AMDGPUTargetParser.cpp.
References getFeatureBitset(), and llvm::Bitset< NumBits >::test().
Referenced by llvm::SIRegisterInfo::filterAndSortForAntiHintedRegs(), getAddressableNumVGPRs(), llvm::AMDGPU::IsaInfo::getMaxNumVGPRs(), llvm::AMDGPU::IsaInfo::getMinNumVGPRs(), llvm::AMDGPU::IsaInfo::getNumWavesPerEUWithNumVGPRs(), getTotalNumVGPRs(), and llvm::GCNSubtarget::getTotalNumVGPRs().
| unsigned llvm::AMDGPU::getTotalNumVGPRs | ( | Triple::SubArchType | SubArch, |
| bool | IsWave32 ) |
Definition at line 457 of file AMDGPUTargetParser.cpp.
References getGPUKindFromSubArch(), and getTotalNumVGPRs().
| GVUsesInfoTy llvm::AMDGPU::getTransitiveUsesOfGV | ( | const CallGraph & | CG, |
| Module & | M, | ||
| function_ref< bool(const GlobalVariable &)> | Filter ) |
Collects all uses of Global Variables in M using getUsesOfGVByFunction.
| CG | M Call Graph |
| M | Module |
| Filter | Filter for getUsesOfGVByFunction - only GVs for which the filter returns true will be considered. |
Definition at line 164 of file AMDGPUMemoryUtils.cpp.
References assert(), llvm::detail::DenseSetImpl< ValueT, MapTy >::contains(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), F, llvm::Filter, getUsesOfGVByFunction(), llvm::detail::DenseSetImpl< ValueT, MapTy >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), isKernel(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::set_union().
Referenced by getTransitiveUsesOfLDSForLowering().
| GVUsesInfoTy llvm::AMDGPU::getTransitiveUsesOfLDSForLowering | ( | const CallGraph & | CG, |
| Module & | M ) |
Collects all uses of LDS Global Variables in M using getUsesOfGVByFunction, with isLDSVariableToLower as the filter.
| CG | M Call Graph |
| M | Module |
Definition at line 296 of file AMDGPUMemoryUtils.cpp.
References llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::contains(), llvm::AMDGPU::GVUsesInfoTy::DirectAccess, getTransitiveUsesOfGV(), llvm::AMDGPU::GVUsesInfoTy::IndirectAccess, isDynamicLDS(), isLDSVariableToLower(), and llvm::reportFatalUsageError().
| void llvm::AMDGPU::getUsesOfGVByFunction | ( | const CallGraph & | CG, |
| Module & | M, | ||
| function_ref< bool(const GlobalVariable &)> | Filter, | ||
| FunctionVariableMap & | Kernels, | ||
| FunctionVariableMap & | Functions ) |
Finds uses of Global Variables on a per-function basis.
| CG | M Call Graph |
| M | Module |
| Filter | Function that returns true for GVs that need to be considered. |
| Kernels[out] | Maps kernels to global variables used by that kernel. |
| Functions[out] | Maps functions to global variables used by that function. |
Definition at line 142 of file AMDGPUMemoryUtils.cpp.
References llvm::dyn_cast(), F, llvm::Filter, I, isKernel(), and V.
Referenced by getTransitiveUsesOfGV().
| LLVM_READONLY int32_t llvm::AMDGPU::getVCMPXOpFromVCMP | ( | uint32_t | Opcode | ) |
AK, in registers. IsWave32 selects the wavefront size, which is a per-kernel mode rather than a property of the GPU. This does not account for dynamic VGPR mode, where the block size chosen by the caller is the granule. Definition at line 430 of file AMDGPUTargetParser.cpp.
References getFeatureBitset(), and llvm::Bitset< NumBits >::test().
Referenced by getVGPRAllocGranule(), and isVOPD3F64OPYSrcHazard().
| unsigned llvm::AMDGPU::getVGPRAllocGranule | ( | Triple::SubArchType | SubArch, |
| bool | IsWave32 ) |
Definition at line 441 of file AMDGPUTargetParser.cpp.
References getGPUKindFromSubArch(), and getVGPRAllocGranule().
| unsigned llvm::AMDGPU::getVGPREncodingMSBs | ( | MCRegister | Reg, |
| const MCRegisterInfo & | MRI ) |
Reg. Definition at line 3458 of file AMDGPUBaseInfo.cpp.
References Idx, MRI, Reg, and llvm::AMDGPU::HWEncoding::REG_IDX_MASK.
Referenced by llvm::AMDGPU::VOPD::InstInfo::getInvalidCompOperandIndex().
| std::pair< const AMDGPU::OpName *, const AMDGPU::OpName * > llvm::AMDGPU::getVGPRLoweringOperandTables | ( | const MCInstrDesc & | Desc | ) |
Definition at line 3522 of file AMDGPUBaseInfo.cpp.
References assert(), getVOPDComponents(), llvm::SIInstrFlags::isBuffer(), llvm::SIInstrFlags::isDPP(), llvm::SIInstrFlags::isDS(), llvm::SIInstrFlags::isEXP(), llvm::SIInstrFlags::isFLAT(), llvm::SIInstrFlags::isMIMG(), llvm::SIInstrFlags::isVIMAGE(), llvm::SIInstrFlags::isVOP1(), llvm::SIInstrFlags::isVOP2(), llvm::SIInstrFlags::isVOP3Like(), llvm::SIInstrFlags::isVOPC(), isVOPD(), llvm::SIInstrFlags::isVSAMPLE(), and llvm_unreachable.
Referenced by getRegFromMIA().
| const MCRegisterClass * llvm::AMDGPU::getVGPRPhysRegClass | ( | MCRegister | Reg, |
| const MCRegisterInfo & | MRI ) |
Reg if it is a VGPR or nullptr otherwise. Definition at line 3437 of file AMDGPUBaseInfo.cpp.
References llvm::MCRegisterClass::contains(), MRI, and Reg.
Referenced by getRegForPrinting(), and getVGPRWithMSBs().
| MCRegister llvm::AMDGPU::getVGPRWithMSBs | ( | MCRegister | Reg, |
| unsigned | MSBs, | ||
| const MCRegisterInfo & | MRI ) |
If Reg is a low VGPR return a corresponding high VGPR with MSBs set.
Definition at line 3464 of file AMDGPUBaseInfo.cpp.
References llvm::MCRegisterClass::getID(), llvm::MCRegisterClass::getRegister(), getVGPRPhysRegClass(), Idx, llvm::AMDGPU::HWEncoding::IS_HI16, MRI, Reg, and llvm::AMDGPU::HWEncoding::REG_IDX_MASK.
Referenced by getRegFromMIA().
| unsigned llvm::AMDGPU::getVmcntBitMask | ( | const IsaVersion & | Version | ) |
Version. Definition at line 1661 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits(), and llvm::AMDGPUInstPrinter::printSWaitCnt().
| LLVM_READONLY bool llvm::AMDGPU::getVOP1IsSingle | ( | unsigned | Opc | ) |
Definition at line 566 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY bool llvm::AMDGPU::getVOP2IsSingle | ( | unsigned | Opc | ) |
Definition at line 570 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY bool llvm::AMDGPU::getVOP3IsSingle | ( | unsigned | Opc | ) |
Definition at line 574 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY std::pair< unsigned, unsigned > llvm::AMDGPU::getVOPDComponents | ( | unsigned | VOPDOpcode | ) |
Definition at line 894 of file AMDGPUBaseInfo.cpp.
References assert().
Referenced by getVGPRLoweringOperandTables(), and getVOPDInstInfo().
| LLVM_READONLY unsigned llvm::AMDGPU::getVOPDEncodingFamily | ( | const MCSubtargetInfo & | ST | ) |
ST. Definition at line 682 of file AMDGPUBaseInfo.cpp.
References llvm::SIEncodingFamily::GFX11, llvm::SIEncodingFamily::GFX1170, llvm::SIEncodingFamily::GFX12, llvm::SIEncodingFamily::GFX1250, llvm::SIEncodingFamily::GFX13, and llvm_unreachable.
Referenced by checkVOPDRegConstraints(), shouldScheduleVOPDAdjacent(), and llvm::tryMatchVOPDPair().
| LLVM_READONLY int llvm::AMDGPU::getVOPDFull | ( | unsigned | OpX, |
| unsigned | OpY, | ||
| unsigned | EncodingFamily, | ||
| bool | VOPD3 ) |
Definition at line 884 of file AMDGPUBaseInfo.cpp.
References getBitOp2().
Referenced by checkVOPDRegConstraints().
| LLVM_READONLY VOPD::InstInfo llvm::AMDGPU::getVOPDInstInfo | ( | const MCInstrDesc & | OpX, |
| const MCInstrDesc & | OpY ) |
Definition at line 1072 of file AMDGPUBaseInfo.cpp.
Referenced by checkVOPDRegConstraints().
| LLVM_READONLY VOPD::InstInfo llvm::AMDGPU::getVOPDInstInfo | ( | unsigned | VOPDOpcode, |
| const MCInstrInfo * | InstrInfo ) |
Definition at line 1076 of file AMDGPUBaseInfo.cpp.
References llvm::AMDGPU::VOPD::COMPONENT_X, getVOPDComponents(), and llvm::SIInstrFlags::isVOPD3().
| LLVM_READONLY unsigned llvm::AMDGPU::getVOPDOpcode | ( | unsigned | Opc, |
| bool | VOPD3 ) |
Definition at line 712 of file AMDGPUBaseInfo.cpp.
References getBitOp2(), and Opc.
Referenced by checkVOPDRegConstraints().
| LLVM_READONLY int32_t llvm::AMDGPU::getVOPe32 | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
Referenced by llvm::SIInstrInfo::canShrink(), llvm::SIInstrInfo::hasVALU32BitEncoding(), and isVCmp().
| LLVM_READONLY int32_t llvm::AMDGPU::getVOPe64 | ( | uint32_t | Opcode | ) |
References LLVM_READONLY.
| unsigned llvm::AMDGPU::getWaitcntBitMask | ( | const IsaVersion & | Version | ) |
Version. Definition at line 1711 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by encodeWaitcnt().
| LLVM_READONLY const MFMA_F8F6F4_Info * llvm::AMDGPU::getWMMA_F8F6F4_WithFormatArgs | ( | unsigned | FmtA, |
| unsigned | FmtB, | ||
| unsigned | F8F8Opcode ) |
Definition at line 643 of file AMDGPUBaseInfo.cpp.
References wmmaScaleF8F6F4FormatToNumRegs().
Referenced by llvm::AMDGPUDisassembler::convertWMMAInst().
| LLVM_READONLY bool llvm::AMDGPU::getWMMAIsXDL | ( | unsigned | Opc | ) |
Definition at line 594 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by llvm::SIInstrInfo::isXDLWMMA().
| std::pair< unsigned, unsigned > llvm::AMDGPU::getWMMAMatrixFmts | ( | const InstT & | MI | ) |
Definition at line 596 of file AMDGPUBaseInfo.h.
References assert(), llvm::getImm(), MI, and Opc.
Referenced by isWMMAAnyF8(), and isWMMABothF4().
| unsigned llvm::AMDGPU::getXcntBitMask | ( | const IsaVersion & | Version | ) |
Version. Returns 0 for versions that do not support Xcnt. Definition at line 1695 of file AMDGPUBaseInfo.cpp.
References llvm::Version.
Referenced by llvm::AMDGPU::HardwareLimits::HardwareLimits().
| bool llvm::AMDGPU::hasA16 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2392 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
|
static |
Definition at line 3631 of file AMDGPUBaseInfo.cpp.
References llvm::MCInstrDesc::getOpcode(), llvm::MCInstrInfo::getOpRegClassID(), llvm::MCSubtargetInfo::HwMode_RegInfo, Idx, and llvm::MCInstrDesc::operands().
Referenced by isDPALU_DPP().
| bool llvm::AMDGPU::hasArchitectedFlatScratch | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2561 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor().
| bool llvm::AMDGPU::hasDPPSrc1SGPR | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2573 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
| bool llvm::AMDGPU::hasG16 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2396 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPUDisassembler::convertMIMGInst().
| bool llvm::AMDGPU::hasGDS | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2405 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPUDisassembler::getInstruction().
| bool llvm::AMDGPU::hasGFX10_3Insts | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2545 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPU::IsaInfo::getVGPRAllocGranule().
| unsigned llvm::AMDGPU::hasKernargPreload | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2577 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor(), and llvm::AMDGPUDisassembler::hasKernargPreload().
| bool llvm::AMDGPU::hasMAIInsts | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2565 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
| bool llvm::AMDGPU::hasMIMG_R128 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2387 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
|
inline |
Definition at line 349 of file AMDGPUBaseInfo.h.
Referenced by llvm::SIInstrInfo::areLoadsFromSameBasePtr(), checkVOPDRegConstraints(), llvm::AMDGPU::VOPD::ComponentProps::ComponentProps(), llvm::AMDGPUDisassembler::convertDPP8Inst(), llvm::AMDGPUDisassembler::convertSDWAInst(), llvm::AMDGPUDisassembler::convertVOP3DPPInst(), llvm::AMDGPUDisassembler::convertVOP3PDPPInst(), llvm::AMDGPUDisassembler::convertVOPC64DPPInst(), llvm::AMDGPUDisassembler::convertVOPCDPPInst(), cvtVOP3DstOpSelOnly(), llvm::SIRegisterInfo::eliminateFrameIndex(), getDstSelForwardingOperand(), getFlatScratchSpillOpcode(), llvm::AMDGPUDisassembler::getInstruction(), llvm::SIInstrInfo::hasModifiers(), llvm::AMDGPUDisassembler::isMacDPP(), isVOPD(), llvm::AMDGPUMCInstLower::lowerT16D16Helper(), llvm::SIInstrInfo::moveToVALUImpl(), llvm::SITargetLowering::PostISelFolding(), and supportsScaleOffset().
| LLVM_READONLY bool llvm::AMDGPU::hasNoOpSelHi | ( | unsigned | Opc | ) |
Returns true if this VOP3P opcode has no op_sel_hi field, in which case those bits are encoded as zero instead of defaulting to one.
Definition at line 837 of file AMDGPUBaseInfo.cpp.
References Opc.
| bool llvm::AMDGPU::hasPackedD16 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2400 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature(), isCI(), and isSI().
Referenced by llvm::AMDGPUDisassembler::convertMIMGInst().
| bool llvm::AMDGPU::hasPopsExitingWaveID | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2464 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPUDisassembler::decodeSpecialReg32(), and llvm::AMDGPUDisassembler::decodeSpecialReg64().
| bool llvm::AMDGPU::hasPrivateApertureRegs | ( | const MCSubtargetInfo & | STI | ) |
STI. Targets with globally addressable scratch have no private aperture and expose src_flat_scratch_base instead. Definition at line 2468 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPUDisassembler::decodeSpecialReg32(), and llvm::AMDGPUDisassembler::decodeSpecialReg64().
|
static |
Definition at line 3261 of file AMDGPUBaseInfo.cpp.
References isGCN3Encoding(), and isGFX10Plus().
Referenced by convertSMRDOffsetUnits(), getSMRDEncodedOffset(), and isLegalSMRDEncodedUnsignedOffset().
| bool llvm::AMDGPU::hasSMRDSignedImmOffset | ( | const MCSubtargetInfo & | ST | ) |
Definition at line 210 of file AMDGPUBaseInfo.cpp.
References isGFX9Plus().
Referenced by getSMRDEncodedOffset(), and isLegalSMRDEncodedSignedOffset().
Checks if Val is inside MD, a !range-like metadata.
Definition at line 1638 of file AMDGPUBaseInfo.cpp.
References assert(), E, llvm::mdconst::extract(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), High, I, and llvm::Low.
Referenced by flatInstrMayAccessPrivate().
| bool llvm::AMDGPU::hasVOPD | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2569 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPUDisassembler::decodeMandatoryLiteralConstant().
| void llvm::AMDGPU::initDefaultAMDKernelCodeT | ( | AMDGPUMCKernelCodeT & | KernelCode, |
| const MCSubtargetInfo & | STI ) |
Definition at line 1465 of file AMDGPUBaseInfo.cpp.
References AMD_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32, llvm::AMDGPU::AMDGPUMCKernelCodeT::amd_kernel_code_version_major, llvm::AMDGPU::AMDGPUMCKernelCodeT::amd_kernel_code_version_minor, llvm::AMDGPU::AMDGPUMCKernelCodeT::amd_machine_kind, llvm::AMDGPU::AMDGPUMCKernelCodeT::amd_machine_version_major, llvm::AMDGPU::AMDGPUMCKernelCodeT::amd_machine_version_minor, llvm::AMDGPU::AMDGPUMCKernelCodeT::amd_machine_version_stepping, llvm::AMDGPU::AMDGPUMCKernelCodeT::call_convention, llvm::AMDGPU::AMDGPUMCKernelCodeT::code_properties, llvm::AMDGPU::AMDGPUMCKernelCodeT::compute_pgm_resource_registers, llvm::MCSubtargetInfo::getCPU(), llvm::MCSubtargetInfo::getFeatureBits(), getIsaVersion(), llvm::AMDGPU::AMDGPUMCKernelCodeT::group_segment_alignment, llvm::AMDGPU::AMDGPUMCKernelCodeT::kernarg_segment_alignment, llvm::AMDGPU::AMDGPUMCKernelCodeT::kernel_code_entry_byte_offset, llvm::AMDGPU::AMDGPUMCKernelCodeT::private_segment_alignment, S_00B848_FWD_PROGRESS, S_00B848_MEM_ORDERED, S_00B848_WGP_MODE, llvm::FeatureBitset::test(), llvm::Version, and llvm::AMDGPU::AMDGPUMCKernelCodeT::wavefront_size.
Referenced by llvm::AMDGPU::AMDGPUMCKernelCodeT::initDefault().
| iota_range< InstCounterType > llvm::AMDGPU::inst_counter_types | ( | InstCounterType | MaxCounter | ) |
Definition at line 24 of file AMDGPUWaitcntUtils.cpp.
References llvm::enum_seq(), and LOAD_CNT.
Referenced by llvm::AMDGPU::Waitcnt::combined(), llvm::AMDGPU::Waitcnt::hasWaitExceptStoreCnt(), and llvm::AMDGPU::Waitcnt::print().
| void llvm::AMDGPU::instrumentAddress | ( | Module & | M, |
| IRBuilder<> & | IRB, | ||
| Instruction * | OrigIns, | ||
| Instruction * | InsertBefore, | ||
| Value * | Addr, | ||
| Align | Alignment, | ||
| TypeSize | TypeStoreSize, | ||
| bool | IsWrite, | ||
| Value * | SizeArgument, | ||
| bool | UseCalls, | ||
| bool | Recover, | ||
| int | Scale, | ||
| int | Offset ) |
Instrument the memory operand Addr.
Generates report blocks that catch the addressing errors.
Definition at line 183 of file AMDGPUAsanInstrumentation.cpp.
References llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateIntToPtr(), llvm::IRBuilderBase::CreateLShr(), llvm::IRBuilderBase::CreatePtrToInt(), llvm::IRBuilderBase::CreateTypeSize(), llvm::Constant::getAllOnesValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::Value::getType(), instrumentAddressImpl(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), llvm::IRBuilderBase::SetInsertPoint(), and llvm::Size.
|
static |
Definition at line 150 of file AMDGPUAsanInstrumentation.cpp.
References llvm::IRBuilderBase::CreateAlignedLoad(), llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateIntToPtr(), llvm::IRBuilderBase::CreateIsNotNull(), llvm::IRBuilderBase::CreatePtrToInt(), createSlowPathCmp(), genAMDGPUReportBlock(), generateCrashCode(), llvm::IntegerType::get(), llvm::PointerType::get(), llvm::Instruction::getDebugLoc(), llvm::Type::getPointerAddressSpace(), llvm::Value::getType(), memToShadow(), llvm::Instruction::setDebugLoc(), llvm::IRBuilderBase::SetInsertPoint(), and TypeStoreSizeToSizeIndex().
Referenced by instrumentAddress().
Ty is a pointer type with size Width. Definition at line 30 of file AMDGPURegBankLegalizeRules.cpp.
Referenced by LLTToBId(), and matchUniformityAndLLT().
Definition at line 3206 of file AMDGPUBaseInfo.cpp.
References A(), llvm::CallingConv::AMDGPU_CS, llvm::CallingConv::AMDGPU_CS_Chain, llvm::CallingConv::AMDGPU_CS_ChainPreserve, llvm::CallingConv::AMDGPU_ES, llvm::CallingConv::AMDGPU_Gfx, llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::CallingConv::AMDGPU_KERNEL, llvm::CallingConv::AMDGPU_LS, llvm::CallingConv::AMDGPU_PS, llvm::CallingConv::AMDGPU_VS, CC, F, and llvm::CallingConv::SPIR_KERNEL.
Referenced by adjustInliningThresholdUsingCallee(), isTriviallyUniform(), and isUniformMMO().
Definition at line 3235 of file AMDGPUBaseInfo.cpp.
References llvm::CallingConv::AMDGPU_CS, llvm::CallingConv::AMDGPU_CS_Chain, llvm::CallingConv::AMDGPU_CS_ChainPreserve, llvm::CallingConv::AMDGPU_ES, llvm::CallingConv::AMDGPU_Gfx, llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::CallingConv::AMDGPU_KERNEL, llvm::CallingConv::AMDGPU_LS, llvm::CallingConv::AMDGPU_PS, llvm::CallingConv::AMDGPU_VS, CC, llvm::CallBase::getCallingConv(), llvm::CallBase::isByValArgument(), llvm::CallBase::paramHasAttr(), and llvm::CallingConv::SPIR_KERNEL.
| LLVM_READONLY bool llvm::AMDGPU::isAsyncStore | ( | unsigned | Opc | ) |
Definition at line 804 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by getTemporalHintType().
|
constexpr |
Is this a scalar (i.e. not packed) bf16 source operand?
Definition at line 1594 of file AMDGPUBaseInfo.h.
References OPERAND_REG_IMM_BF16, and OPERAND_REG_INLINE_C_BF16.
|
constexpr |
Definition at line 1437 of file AMDGPUBaseInfo.h.
References llvm::CallingConv::AMDGPU_CS_Chain, llvm::CallingConv::AMDGPU_CS_ChainPreserve, and CC.
Referenced by llvm::SIFrameLowering::determinePrologEpilogSGPRSaves(), llvm::MCResourceInfo::gatherResourceInfo(), getCallOpcode(), llvm::AMDGPUFunctionArgInfo::getPrivateSegmentBufferReg(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), llvm::AMDGPULegalizerInfo::loadInputValue(), llvm::SITargetLowering::LowerCall(), llvm::AMDGPUCallLowering::lowerTailCall(), and llvm::SIMachineFunctionInfo::SIMachineFunctionInfo().
| bool llvm::AMDGPU::isCI | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2430 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPU::MTBUFFormat::getNfmtLookupTable(), getSMRDEncodedLiteralOffset32(), hasPackedD16(), and isNotGFX10Plus().
| bool llvm::AMDGPU::isClobberedInFunction | ( | const LoadInst * | Load, |
| MemorySSA * | MSSA, | ||
| AAResults * | AA ) |
Check is a Load is clobbered in its function.
Definition at line 419 of file AMDGPUMemoryUtils.cpp.
References llvm::cast(), llvm::dbgs(), Def, llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::MemoryLocation::get(), llvm::MemorySSAWalker::getClobberingMemoryAccess(), llvm::MemorySSA::getMemoryAccess(), llvm::MemorySSA::getWalker(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::MemorySSA::isLiveOnEntryDef(), isReallyAClobber(), LLVM_DEBUG, llvm::Load, llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
constexpr |
Definition at line 1414 of file AMDGPUBaseInfo.h.
References llvm::CallingConv::AMDGPU_CS, CC, and isGraphics().
Referenced by EmitPALMetadataCommon(), llvm::SIProgramInfo::getPGMRSrc1(), llvm::AMDGPULegalizerInfo::loadInputValue(), llvm::SIFrameLowering::mayReserveScratchForCWSR(), llvm::R600InstrInfo::usesTextureCache(), and llvm::R600InstrInfo::usesVertexCache().
Definition at line 125 of file AMDGPUAddrSpace.h.
| bool llvm::AMDGPU::isCPUValidForSubArch | ( | Triple::SubArchType | SubArch, |
| GPUKind | AK ) |
Return true if the GPU AK is usable with the triple subarch SubArch.
A NoSubArch triple (legacy "amdgcn") accepts any GPU. Otherwise the GPU's subarch must equal SubArch, or SubArch must be the major-family subarch of the GPU (e.g. the amdgpu9 triple accepts gfx900).
Definition at line 209 of file AMDGPUTargetParser.cpp.
References getSubArch(), GK_NONE, isSubArchCompatible(), and llvm::Triple::NoSubArch.
Referenced by fillValidArchListAMDGCN(), isCPUValidForSubArch(), and llvm::AMDGPU::TargetID::parse().
| bool llvm::AMDGPU::isCPUValidForSubArch | ( | Triple::SubArchType | SubArch, |
| StringRef | CPU ) |
Convenience overload of isCPUValidForSubArch taking a GPU name CPU, which is parsed via parseArchAMDGCN.
An unrecognized name is never valid.
Definition at line 225 of file AMDGPUTargetParser.cpp.
References isCPUValidForSubArch(), and parseArchAMDGCN().
| LLVM_READNONE bool llvm::AMDGPU::isCvt_F32_Fp8_Bf8_e64 | ( | unsigned | Opc | ) |
Definition at line 769 of file AMDGPUBaseInfo.cpp.
References Opc.
| bool llvm::AMDGPU::isDPALU_DPP | ( | const MCInstrDesc & | OpDesc, |
| const MCInstrInfo & | MII, | ||
| const MCSubtargetInfo & | ST ) |
Definition at line 3670 of file AMDGPUBaseInfo.cpp.
References llvm::MCInstrDesc::getOpcode(), hasAny64BitVGPROperands(), and isDPALU_DPP32BitOpc().
Referenced by llvm::SIInstrInfo::verifyInstruction().
Definition at line 3650 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by isDPALU_DPP().
Definition at line 853 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by getExpertSchedulingEventType(), and llvm::SIInstrInfo::isVOPDAntidependencyAllowed().
Definition at line 3285 of file AMDGPUBaseInfo.cpp.
References uint64_t.
Referenced by convertSMRDOffsetUnits(), getSMRDEncodedLiteralOffset32(), and getSMRDEncodedOffset().
| bool llvm::AMDGPU::isDynamicLDS | ( | const GlobalVariable & | GV | ) |
Definition at line 103 of file AMDGPUMemoryUtils.cpp.
References DL, llvm::GlobalVariable::getGlobalSize(), llvm::GlobalValue::getParent(), llvm::Type::getPointerAddressSpace(), llvm::GlobalValue::getType(), and llvm::AMDGPUAS::LOCAL_ADDRESS.
Referenced by getTransitiveUsesOfLDSForLowering(), and isLDSVariableToLower().
|
constexpr |
Definition at line 1419 of file AMDGPUBaseInfo.h.
References llvm::CallingConv::AMDGPU_CS, llvm::CallingConv::AMDGPU_ES, llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::CallingConv::AMDGPU_KERNEL, llvm::CallingConv::AMDGPU_LS, llvm::CallingConv::AMDGPU_PS, llvm::CallingConv::AMDGPU_VS, CC, and llvm::CallingConv::SPIR_KERNEL.
Referenced by llvm::SITargetLowering::CanLowerReturn(), llvm::MCResourceInfo::gatherResourceInfo(), llvm::GCNUserSGPRUsageInfo::GCNUserSGPRUsageInfo(), llvm::GCNSubtarget::getMaxNumVGPRs(), isModuleEntryFunctionCC(), llvm::AMDGPULegalizerInfo::loadInputValue(), llvm::SITargetLowering::LowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::SITargetLowering::mayBeEmittedAsTailCall(), llvm::SIFrameLowering::mayReserveScratchForCWSR(), mustPreserveGV(), and recursivelyVisitUsers().
| bool llvm::AMDGPU::isExpertSchedulingMode | ( | const GCNSubtarget & | ST, |
| const Function & | F ) |
Return whether expert scheduling mode is available and enabled for F.
Definition at line 17 of file AMDGPUWaitcntUtils.cpp.
References F, and llvm::valueOr().
Definition at line 119 of file AMDGPUAddrSpace.h.
References llvm::AMDGPUAS::CONSTANT_ADDRESS, llvm::AMDGPUAS::CONSTANT_ADDRESS_32BIT, llvm::AMDGPUAS::GLOBAL_ADDRESS, and llvm::AMDGPUAS::MAX_AMDGPU_ADDRESS.
Referenced by llvm::SITargetLowering::allowsMisalignedMemoryAccessesImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::GCNTTIImpl::getMemoryOpCost(), llvm::GCNTTIImpl::getScalingFactorCost(), llvm::SITargetLowering::lowerPREFETCH(), llvm::GCNTTIImpl::rewriteIntrinsicWithAddressSpace(), and llvm::SITargetLowering::shouldExpandAtomicRMWInIR().
Definition at line 114 of file AMDGPUAddrSpace.h.
References llvm::AMDGPUAS::CONSTANT_ADDRESS, llvm::AMDGPUAS::FLAT_ADDRESS, llvm::AMDGPUAS::GLOBAL_ADDRESS, and llvm::AMDGPUAS::MAX_AMDGPU_ADDRESS.
Referenced by llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::getInstrMappingForLoad(), llvm::AMDGPURegisterBankInfo::getValueMappingForPtr(), llvm::AMDGPUTargetMachine::isNoopAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeAtomicCmpXChg(), llvm::SITargetLowering::shouldExpandAtomicRMWInIR(), llvm::GCNTTIImpl::shouldPrefetchAddressSpace(), and llvm::verifyAMDGPUIntrinsicCall().
| bool llvm::AMDGPU::isFullSIMDMode | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2507 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::getFeatureBits(), isGFX1250(), and llvm::FeatureBitset::test().
Referenced by llvm::AMDGPU::IsaInfo::getLocalMemorySize(), llvm::AMDGPU::IsaInfo::getMaxWorkGroupsPerCU(), and llvm::AMDGPU::IsaInfo::getWavesPerEUForWorkGroup().
| bool llvm::AMDGPU::isGCN3Encoding | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2537 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by hasSMEMByteOffset().
| LLVM_READNONE bool llvm::AMDGPU::isGenericAtomic | ( | unsigned | Opc | ) |
Definition at line 782 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by llvm::SIInstrInfo::getGenericValueUniformity().
| bool llvm::AMDGPU::isGFX10 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2473 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by getGcnBufferFormatInfo(), getGcnBufferFormatInfo(), llvm::AMDGPU::MTBUFFormat::getUnifiedFormatName(), llvm::AMDGPUDisassembler::isGFX10(), isGFX10_GFX11(), isGFX10Before1030(), isGFX10Plus(), isGFX8_GFX9_GFX10(), isGFX9_GFX10(), isGFX9_GFX10_GFX11(), and llvm::AMDGPU::MTBUFFormat::isValidUnifiedFormat().
| bool llvm::AMDGPU::isGFX10_3_GFX11 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2549 of file AMDGPUBaseInfo.cpp.
References isGFX10_BEncoding(), and isGFX12Plus().
| bool llvm::AMDGPU::isGFX10_BEncoding | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2541 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by isGFX10_3_GFX11(), and isGFX10Before1030().
| bool llvm::AMDGPU::isGFX10_GFX11 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2477 of file AMDGPUBaseInfo.cpp.
| bool llvm::AMDGPU::isGFX10Before1030 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2533 of file AMDGPUBaseInfo.cpp.
References isGFX10(), and isGFX10_BEncoding().
| bool llvm::AMDGPU::isGFX10Plus | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2481 of file AMDGPUBaseInfo.cpp.
References isGFX10(), and isGFX11Plus().
Referenced by createAMDGPUMCSubtargetInfo(), llvm::AMDGPUAsmPrinter::doFinalization(), generateEndPgm(), llvm::AMDGPU::MTBUFFormat::getDefaultFormatEncoding(), llvm::AMDGPU::IsaInfo::getMaxWorkGroupsPerCU(), hasSMEMByteOffset(), llvm::AMDGPUDisassembler::isGFX10Plus(), isGFX9Plus(), llvm::AMDGPU::Exp::isSupportedTgtId(), llvm::AMDGPU::MTBUFFormat::isValidFormatEncoding(), supportsWGP(), and llvm::AMDGPU::AMDGPUMCKernelCodeT::validate().
| bool llvm::AMDGPU::isGFX11 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2485 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by isGFX10_GFX11(), isGFX11Plus(), isGFX9_GFX10_GFX11(), and llvm::AMDGPULegalizerInfo::legalizeBVHIntersectRayIntrinsic().
| bool llvm::AMDGPU::isGFX11Plus | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2489 of file AMDGPUBaseInfo.cpp.
References isGFX11(), and isGFX12Plus().
Referenced by llvm::AMDGPU::MTBUFFormat::convertDfmtNfmt2Ufmt(), llvm::AMDGPU::SendMsg::decodeMsg(), llvm::AMDGPUTargetAsmStreamer::EmitCodeEnd(), llvm::AMDGPUTargetELFStreamer::EmitCodeEnd(), getGcnBufferFormatInfo(), getGcnBufferFormatInfo(), llvm::AMDGPU::SendMsg::getMsgIdMask(), llvm::AMDGPU::MTBUFFormat::getUnifiedFormat(), imageIntrinsicOptimizerImpl(), isGFX10Plus(), llvm::AMDGPUDisassembler::isGFX11Plus(), isNotGFX11Plus(), llvm::AMDGPU::Exp::isSupportedTgtId(), llvm::AMDGPU::SendMsg::isValidMsgStream(), llvm::AMDGPULegalizerInfo::legalizeBVHIntersectRayIntrinsic(), llvm::AMDGPU::SendMsg::msgDoesNotUseM0(), llvm::AMDGPU::SendMsg::msgRequiresOp(), and llvm::AMDGPU::SendMsg::msgSupportsStream().
| bool llvm::AMDGPU::isGFX12 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2493 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::getFeatureBits().
Referenced by isGFX12Plus(), and isLegalDPALU_DPPControl().
| bool llvm::AMDGPU::isGFX1250 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2503 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::getFeatureBits(), and isGFX13().
Referenced by isFullSIMDMode(), llvm::AMDGPUDisassembler::isGFX1250(), llvm::SIInstrInfo::isVAVDSTOrderedXDL(), and supportsWGP().
| bool llvm::AMDGPU::isGFX1250Plus | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2511 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::getFeatureBits().
Referenced by llvm::AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor(), getMaxNumUserSGPRs(), and llvm::AMDGPUDisassembler::isGFX1250Plus().
| bool llvm::AMDGPU::isGFX12Plus | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2497 of file AMDGPUBaseInfo.cpp.
References isGFX12(), and isGFX13Plus().
Referenced by llvm::SIInstrInfo::allowNegativeFlatOffset(), getInstPrefSizeFieldWidth(), getSMRDEncodedOffset(), isGFX10_3_GFX11(), isGFX11Plus(), llvm::AMDGPUDisassembler::isGFX12Plus(), isLegalSMRDEncodedSignedOffset(), isLegalSMRDEncodedUnsignedOffset(), isNotGFX12Plus(), llvm::SIInstrInfo::isXDL(), and llvm::AMDGPULegalizerInfo::legalizeBVHIntersectRayIntrinsic().
| bool llvm::AMDGPU::isGFX13 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2515 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::getFeatureBits().
Referenced by isGFX1250(), llvm::AMDGPUDisassembler::isGFX13(), and isGFX13Plus().
| bool llvm::AMDGPU::isGFX13Plus | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2519 of file AMDGPUBaseInfo.cpp.
References isGFX13().
Referenced by isGFX12Plus(), llvm::AMDGPUDisassembler::isGFX13Plus(), and llvm::AMDGPU::Exp::isSupportedTgtId().
| bool llvm::AMDGPU::isGFX8_GFX9_GFX10 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2450 of file AMDGPUBaseInfo.cpp.
| bool llvm::AMDGPU::isGFX8Plus | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2454 of file AMDGPUBaseInfo.cpp.
References isGFX9Plus(), and isVI().
| bool llvm::AMDGPU::isGFX9 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2438 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPU::MTBUFFormat::getNfmtLookupTable(), isGFX8_GFX9_GFX10(), llvm::AMDGPUDisassembler::isGFX9(), isGFX9_GFX10(), isGFX9_GFX10_GFX11(), isGFX9Plus(), and isNotGFX10Plus().
| bool llvm::AMDGPU::isGFX90A | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2553 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPUAsmPrinter::doFinalization(), llvm::AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor(), llvm::AMDGPUTargetAsmStreamer::EmitCodeEnd(), llvm::AMDGPUTargetELFStreamer::EmitCodeEnd(), and isLegalDPALU_DPPControl().
| bool llvm::AMDGPU::isGFX940 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2557 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
| bool llvm::AMDGPU::isGFX9_GFX10 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2442 of file AMDGPUBaseInfo.cpp.
| bool llvm::AMDGPU::isGFX9_GFX10_GFX11 | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2446 of file AMDGPUBaseInfo.cpp.
| bool llvm::AMDGPU::isGFX9Plus | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2458 of file AMDGPUBaseInfo.cpp.
References isGFX10Plus(), and isGFX9().
Referenced by hasSMRDSignedImmOffset(), isGFX8Plus(), llvm::AMDGPUDisassembler::isGFX9Plus(), isNotGFX9Plus(), and llvm::AMDGPUInstPrinter::printSwizzle().
|
constexpr |
Definition at line 1408 of file AMDGPUBaseInfo.h.
References llvm::CallingConv::AMDGPU_Gfx, llvm::CallingConv::AMDGPU_Gfx_WholeWave, CC, and isShader().
Referenced by llvm::GCNUserSGPRUsageInfo::GCNUserSGPRUsageInfo(), isCompute(), llvm::SIInstrInfo::legalizeOperands(), llvm::SITargetLowering::LowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArguments(), and llvm::SIMachineFunctionInfo::SIMachineFunctionInfo().
| bool llvm::AMDGPU::isHi16Reg | ( | MCRegister | Reg, |
| const MCRegisterInfo & | MRI ) |
Reg occupies the high 16-bits of a 32-bit register. Definition at line 2600 of file AMDGPUBaseInfo.cpp.
References llvm::AMDGPU::HWEncoding::IS_HI16, MRI, and Reg.
Referenced by llvm::SIInstrInfo::copyPhysReg(), cvtVOP3DstOpSelOnly(), llvm::SIRegisterInfo::getRegAllocationHints(), llvm::AMDGPUMCInstLower::lowerT16D16Helper(), llvm::AMDGPUMCInstLower::lowerT16FmaMixFP16(), and llvm::SIRegisterInfo::SIRegisterInfo().
| bool llvm::AMDGPU::isHsaAbi | ( | const MCSubtargetInfo & | STI | ) |
STI is AMDHSA. Definition at line 215 of file AMDGPUBaseInfo.cpp.
References llvm::Triple::AMDHSA, llvm::Triple::getOS(), and llvm::MCSubtargetInfo::getTargetTriple().
|
inline |
Is this literal inlinable, and not one of the values intended for floating point values.
Definition at line 1667 of file AMDGPUBaseInfo.h.
References llvm::Literal.
Referenced by llvm::SITargetLowering::checkAsmConstraintVal(), clearUnusedBits(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::isFrameOffsetLegal(), isInlinableLiteral32(), isInlinableLiteral64(), isInlinableLiteralBF16(), isInlinableLiteralFP16(), llvm::SIInstrInfo::isInlineConstant(), and llvm::AMDGPUAsmPrinter::PrintAsmOperand().
| LLVM_READNONE bool llvm::AMDGPU::isInlinableLiteral32 | ( | int32_t | Literal, |
| bool | HasInv2Pi ) |
Definition at line 2938 of file AMDGPUBaseInfo.cpp.
References llvm::bit_cast(), isInlinableIntLiteral(), and llvm::Literal.
Referenced by llvm::SITargetLowering::checkAsmConstraintValA(), llvm::AMDGPUDisassembler::decodeLiteralConstant(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), isInlinableLiteralI16(), isInlineableLiteralOp16(), llvm::SIInstrInfo::isInlineConstant(), llvm::SIInstrInfo::isInlineConstant(), and llvm::SIInstrInfo::isLegalAV64PseudoImm().
| LLVM_READNONE bool llvm::AMDGPU::isInlinableLiteral64 | ( | int64_t | Literal, |
| bool | HasInv2Pi ) |
Is this literal inlinable.
Definition at line 2921 of file AMDGPUBaseInfo.cpp.
References llvm::bit_cast(), isInlinableIntLiteral(), llvm::Literal, and uint64_t.
Referenced by llvm::SITargetLowering::checkAsmConstraintValA(), llvm::AMDGPUDisassembler::decodeLiteral64Constant(), llvm::AMDGPUDisassembler::decodeLiteralConstant(), llvm::SIInstrInfo::isInlineConstant(), llvm::SIInstrInfo::isInlineConstant(), and llvm::SIInstrInfo::isOperandLegal().
Definition at line 2964 of file AMDGPUBaseInfo.cpp.
References isInlinableIntLiteral(), and llvm::Literal.
Referenced by llvm::SITargetLowering::checkAsmConstraintValA(), llvm::AMDGPUDisassembler::decodeLiteralConstant(), isInlineableLiteralOp16(), llvm::SIInstrInfo::isInlineConstant(), and llvm::SIInstrInfo::isInlineConstant().
| LLVM_READNONE bool llvm::AMDGPU::isInlinableLiteralFP16 | ( | int16_t | Literal, |
| bool | HasInv2Pi ) |
Definition at line 2989 of file AMDGPUBaseInfo.cpp.
References isInlinableIntLiteral(), and llvm::Literal.
Referenced by llvm::SITargetLowering::checkAsmConstraintValA(), llvm::AMDGPUDisassembler::decodeLiteralConstant(), isInlineableLiteralOp16(), llvm::SIInstrInfo::isInlineConstant(), and llvm::SIInstrInfo::isInlineConstant().
| LLVM_READNONE bool llvm::AMDGPU::isInlinableLiteralI16 | ( | int32_t | Literal, |
| bool | HasInv2Pi ) |
Definition at line 2985 of file AMDGPUBaseInfo.cpp.
References isInlinableLiteral32(), and llvm::Literal.
Referenced by llvm::SITargetLowering::checkAsmConstraintValA(), llvm::AMDGPUDisassembler::decodeLiteralConstant(), and llvm::SIInstrInfo::isInlineConstant().
| LLVM_READNONE bool llvm::AMDGPU::isInlinableLiteralV216 | ( | uint32_t | Literal, |
| uint8_t | OpType ) |
Definition at line 3128 of file AMDGPUBaseInfo.cpp.
References getInlineEncodingV216(), isInlinableLiteralV2BF16(), llvm::Literal, llvm_unreachable, OPERAND_REG_IMM_NOINLINE_V2FP16, OPERAND_REG_IMM_V2BF16, OPERAND_REG_IMM_V2FP16, OPERAND_REG_IMM_V2FP16_SPLAT, OPERAND_REG_IMM_V2INT16, OPERAND_REG_INLINE_C_V2BF16, OPERAND_REG_INLINE_C_V2FP16, and OPERAND_REG_INLINE_C_V2INT16.
| LLVM_READNONE bool llvm::AMDGPU::isInlinableLiteralV2BF16 | ( | uint32_t | Literal | ) |
Definition at line 3154 of file AMDGPUBaseInfo.cpp.
References getInlineEncodingV2BF16(), and llvm::Literal.
Referenced by llvm::AMDGPUDisassembler::decodeLiteralConstant(), isInlinableLiteralV216(), and llvm::SIInstrInfo::isInlineConstant().
| LLVM_READNONE bool llvm::AMDGPU::isInlinableLiteralV2F16 | ( | uint32_t | Literal | ) |
Definition at line 3159 of file AMDGPUBaseInfo.cpp.
References getInlineEncodingV2F16(), and llvm::Literal.
Referenced by llvm::AMDGPUDisassembler::decodeLiteralConstant(), and llvm::SIInstrInfo::isInlineConstant().
| LLVM_READNONE bool llvm::AMDGPU::isInlinableLiteralV2I16 | ( | uint32_t | Literal | ) |
Definition at line 3149 of file AMDGPUBaseInfo.cpp.
References getInlineEncodingV2I16(), and llvm::Literal.
Referenced by llvm::AMDGPUDisassembler::decodeLiteralConstant(), and llvm::SIInstrInfo::isInlineConstant().
| LLVM_READNONE bool llvm::AMDGPU::isInlineValue | ( | MCRegister | Reg | ) |
Definition at line 2694 of file AMDGPUBaseInfo.cpp.
References Reg.
Definition at line 3385 of file AMDGPUBaseInfo.cpp.
Referenced by llvm::SIInstrInfo::getGenericValueUniformity(), llvm::AMDGPUTargetLowering::isSDNodeAlwaysUniform(), and isTriviallyUniform().
Definition at line 3381 of file AMDGPUBaseInfo.cpp.
Referenced by llvm::SIInstrInfo::getGenericValueUniformity(), and llvm::SITargetLowering::isSDNodeSourceOfDivergence().
|
inlineconstexpr |
Definition at line 1469 of file AMDGPUBaseInfo.h.
References llvm::CallingConv::AMDGPU_KERNEL, CC, and llvm::CallingConv::SPIR_KERNEL.
Referenced by getTransitiveUsesOfGV(), getUsesOfGVByFunction(), isKernel(), llvm::AMDGPULegalizerInfo::legalizeIntrinsic(), llvm::SITargetLowering::LowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::SITargetLowering::LowerReturn(), llvm::AMDGPUCallLowering::lowerReturn(), and removeFnAttrFromReachable().
Definition at line 1479 of file AMDGPUBaseInfo.h.
References F, and isKernel().
| bool llvm::AMDGPU::isKImmOperand | ( | const MCInstrDesc & | Desc, |
| unsigned | OpNo ) |
Is this a KImm operand?
Definition at line 2725 of file AMDGPUBaseInfo.cpp.
References assert(), OPERAND_KIMM_FIRST, and OPERAND_KIMM_LAST.
Definition at line 3408 of file AMDGPUBaseInfo.cpp.
| bool llvm::AMDGPU::isLDSVariableToLower | ( | const GlobalVariable & | GV | ) |
Definition at line 112 of file AMDGPUMemoryUtils.cpp.
References llvm::GlobalVariable::getInitializer(), llvm::Type::getPointerAddressSpace(), llvm::GlobalValue::getType(), llvm::GlobalVariable::hasInitializer(), llvm::isa(), llvm::GlobalVariable::isConstant(), isDynamicLDS(), and llvm::AMDGPUAS::LOCAL_ADDRESS.
Referenced by getTransitiveUsesOfLDSForLowering().
|
inline |
Definition at line 1771 of file AMDGPUBaseInfo.h.
References isGFX12(), isGFX90A(), llvm::AMDGPU::DPP::ROW_NEWBCAST_FIRST, llvm::AMDGPU::DPP::ROW_NEWBCAST_LAST, llvm::AMDGPU::DPP::ROW_SHARE_FIRST, and llvm::AMDGPU::DPP::ROW_SHARE_LAST.
Referenced by llvm::SIInstrInfo::expandMovDPP64(), llvm::AMDGPULegalizerInfo::legalizeLaneOp(), lowerLaneOp(), and llvm::SIInstrInfo::verifyInstruction().
| LLVM_READONLY bool llvm::AMDGPU::isLegalSMRDEncodedSignedOffset | ( | const MCSubtargetInfo & | ST, |
| int64_t | EncodedOffset, | ||
| bool | IsBuffer ) |
Definition at line 3274 of file AMDGPUBaseInfo.cpp.
References hasSMRDSignedImmOffset(), isGFX12Plus(), and llvm::isInt().
| LLVM_READONLY bool llvm::AMDGPU::isLegalSMRDEncodedUnsignedOffset | ( | const MCSubtargetInfo & | ST, |
| int64_t | EncodedOffset ) |
Definition at line 3265 of file AMDGPUBaseInfo.cpp.
References hasSMEMByteOffset(), isGFX12Plus(), and llvm::isUInt().
Referenced by getSMRDEncodedOffset().
Definition at line 761 of file AMDGPUMCExpr.cpp.
References llvm::AMDGPUMCExpr::AGVK_Lit, llvm::AMDGPUMCExpr::AGVK_Lit64, llvm::dyn_cast(), and E.
Referenced by getLitValue().
| LLVM_READNONE bool llvm::AMDGPU::isMAC | ( | unsigned | Opc | ) |
Definition at line 723 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by llvm::AMDGPUDisassembler::getInstruction().
|
constexpr |
Definition at line 1458 of file AMDGPUBaseInfo.h.
References llvm::CallingConv::AMDGPU_CS_Chain, llvm::CallingConv::AMDGPU_Gfx, CC, and isEntryFunctionCC().
Referenced by llvm::AMDGPUTargetMachine::getAssumedAddrSpace().
| TargetExtType * llvm::AMDGPU::isNamedBarrier | ( | const GlobalVariable & | GV | ) |
Definition at line 87 of file AMDGPUMemoryUtils.cpp.
References llvm::AMDGPUAS::BARRIER, llvm::GlobalValue::getAddressSpace(), llvm::TargetExtType::getName(), and getTargetExtType().
Referenced by llvm::AMDGPUMachineFunctionInfo::allocateBarrierGlobal(), getNumNamedBarriersDeclared(), llvm::SITargetLowering::isOffsetFoldingLegal(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), and llvm::AMDGPUTargetLowering::LowerGlobalAddress().
| bool llvm::AMDGPU::isNotGFX10Plus | ( | const MCSubtargetInfo & | STI | ) |
| bool llvm::AMDGPU::isNotGFX11Plus | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2527 of file AMDGPUBaseInfo.cpp.
References isGFX11Plus().
| bool llvm::AMDGPU::isNotGFX12Plus | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2501 of file AMDGPUBaseInfo.cpp.
References isGFX12Plus().
| bool llvm::AMDGPU::isNotGFX9Plus | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2462 of file AMDGPUBaseInfo.cpp.
References isGFX9Plus().
| LLVM_READONLY bool llvm::AMDGPU::isPackedSingleSGPR64BitInst | ( | unsigned | Opc | ) |
The opcode is a packed 64-bit instruction which only reads low 64 bits of a scalar operand and propagates it to high channel.
Definition at line 3693 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by isSingleSGPRReadInst(), and llvm::SIInstrInfo::legalizeOpWithMove().
| LLVM_READONLY bool llvm::AMDGPU::isPackedSingleSGPRFP32Inst | ( | unsigned | Opc | ) |
The opcode is a packed fp32 instruction which only reads low 32 bits of a scalar operand and propagates it to high channel.
Definition at line 3678 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by isSingleSGPRReadInst().
| LLVM_READNONE bool llvm::AMDGPU::isPermlane16 | ( | unsigned | Opc | ) |
Definition at line 754 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READNONE bool llvm::AMDGPU::isPKFMACF16InlineConstant | ( | uint32_t | Literal, |
| bool | IsGFX11Plus ) |
Definition at line 3164 of file AMDGPUBaseInfo.cpp.
References getPKFMACF16InlineEncoding(), and llvm::Literal.
Referenced by llvm::AMDGPUDisassembler::decodeLiteralConstant(), and llvm::SIInstrInfo::isInlineConstant().
Return true if AK is a pseudo target (e.g.
"generic"/"generic-hsa"): a recognized AMDGCN GPU that represents no concrete hardware and has no subarch of its own. Such targets are resolved by the backend as a default device but are not valid as an explicit -mcpu.
Definition at line 229 of file AMDGPUTargetParser.cpp.
References llvm::Triple::NoSubArch.
Referenced by isPseudoTarget().
Convenience overload of isPseudoTarget taking a GPU name CPU, which is parsed via parseArchAMDGCN.
Definition at line 234 of file AMDGPUTargetParser.cpp.
References isPseudoTarget(), and parseArchAMDGCN().
| bool llvm::AMDGPU::isReadOnlySegment | ( | const GlobalValue * | GV | ) |
Definition at line 1499 of file AMDGPUBaseInfo.cpp.
References llvm::AMDGPUAS::CONSTANT_ADDRESS, llvm::AMDGPUAS::CONSTANT_ADDRESS_32BIT, and llvm::GlobalValue::getAddressSpace().
Referenced by llvm::AMDGPUTargetObjectFile::SelectSectionForGlobal().
Given a Def clobbering a load from Ptr according to the MSSA check if this is actually a memory update or an artificial clobber to facilitate ordering constraints.
Definition at line 377 of file AMDGPUMemoryUtils.cpp.
References Def, llvm::dyn_cast(), I, II, and llvm::isa().
Referenced by isClobberedInFunction().
| bool llvm::AMDGPU::isRsrcIndexReg | ( | MCRegister | Reg, |
| const MCRegisterInfo & | MRI ) |
Reg is an indexed-resource index register, i.e. either a 32-bit SGPR (uniform-indexed form) or a Lo256 VGPR (per-lane indexed form). Definition at line 2596 of file AMDGPUBaseInfo.cpp.
| bool llvm::AMDGPU::isSGPR | ( | MCRegister | Reg, |
| const MCRegisterInfo * | TRI ) |
Is Reg - scalar register.
Definition at line 2588 of file AMDGPUBaseInfo.cpp.
References llvm::MCRegisterClass::contains(), Reg, and TRI.
|
constexpr |
Definition at line 1390 of file AMDGPUBaseInfo.h.
References llvm::CallingConv::AMDGPU_CS, llvm::CallingConv::AMDGPU_CS_Chain, llvm::CallingConv::AMDGPU_CS_ChainPreserve, llvm::CallingConv::AMDGPU_ES, llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::CallingConv::AMDGPU_LS, llvm::CallingConv::AMDGPU_PS, llvm::CallingConv::AMDGPU_VS, and CC.
Referenced by llvm::GCNTTIImpl::fpenvIEEEMode(), llvm::SIModeRegisterDefaults::getDefaultForCallingConv(), isGraphics(), llvm::GCNSubtarget::isMesaGfxShader(), llvm::AMDGPUSubtarget::isMesaKernel(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerReturn(), llvm::AMDGPUCallLowering::lowerReturn(), and reservePrivateMemoryRegs().
| bool llvm::AMDGPU::isSI | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2426 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPU::MTBUFFormat::getNfmtLookupTable(), hasPackedD16(), and isNotGFX10Plus().
| LLVM_READONLY bool llvm::AMDGPU::isSingleSGPRReadInst | ( | unsigned | Opc | ) |
Packed instructions that read a single SGPR for SGPR operands, except for 64-bit elements which read two SGPRs.
Definition at line 3709 of file AMDGPUBaseInfo.cpp.
References isPackedSingleSGPR64BitInst(), isPackedSingleSGPRFP32Inst(), and Opc.
Referenced by llvm::SIInstrInfo::isLegalRegOperand(), llvm::SIInstrInfo::legalizeOperandsVOP3(), and llvm::SIInstrInfo::verifyInstruction().
| bool llvm::AMDGPU::isSISrcFPOperand | ( | const MCInstrDesc & | Desc, |
| unsigned | OpNo ) |
Is this floating-point operand?
Definition at line 2732 of file AMDGPUBaseInfo.cpp.
References assert(), OPERAND_REG_IMM_FP16, OPERAND_REG_IMM_FP32, OPERAND_REG_IMM_FP64, OPERAND_REG_IMM_NOINLINE_FP16, OPERAND_REG_IMM_NOINLINE_V2FP16, OPERAND_REG_IMM_V2FP16, OPERAND_REG_IMM_V2FP16_SPLAT, OPERAND_REG_IMM_V2FP32, OPERAND_REG_IMM_V2FP64, OPERAND_REG_INLINE_AC_FP32, OPERAND_REG_INLINE_AC_FP64, OPERAND_REG_INLINE_C_FP16, OPERAND_REG_INLINE_C_FP32, OPERAND_REG_INLINE_C_FP64, and OPERAND_REG_INLINE_C_V2FP16.
Referenced by llvm::AMDGPU::VOPD::ComponentProps::ComponentProps().
|
inline |
Definition at line 1589 of file AMDGPUBaseInfo.h.
References isSISrcOperand().
|
constexpr |
Is this an AMDGPU specific source operand?
These include registers, inline constants, literals and mandatory literals (KImm).
Definition at line 1584 of file AMDGPUBaseInfo.h.
References OPERAND_SRC_FIRST, and OPERAND_SRC_LAST.
Referenced by llvm::SIInstrInfo::isLiteralOperandLegal(), llvm::SIInstrInfo::isOperandLegal(), and isSISrcOperand().
Return true if subarch A is compatible with subarch B, i.e.
they are equal or one is the major-family subarch of the other (e.g. AMDGPUSubArch9 is compatible with AMDGPUSubArch900). NoSubArch is compatible with anything.
Definition at line 238 of file AMDGPUTargetParser.cpp.
References A(), B(), isSubArchCompatible(), and llvm::Triple::NoSubArch.
Referenced by llvm::Triple::isCompatibleWith(), isCPUValidForSubArch(), and isSubArchCompatible().
| bool llvm::AMDGPU::isSubArchCompatible | ( | Triple::SubArchType | A, |
| Triple::SubArchType | B ) |
Definition at line 193 of file AMDGPUTargetParser.cpp.
References A(), B(), getMajorSubArch(), and llvm::Triple::NoSubArch.
|
static |
Definition at line 1845 of file AMDGPUBaseInfo.cpp.
References Idx, and llvm::Size.
Referenced by llvm::AMDGPU::DepCtr::isSymbolicDepCtrEncoding().
| LLVM_READONLY bool llvm::AMDGPU::isTensorStore | ( | unsigned | Opc | ) |
Definition at line 815 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by getTemporalHintType().
Definition at line 1048 of file AMDGPUBaseInfo.h.
References F.
Return true if we can easily prove that use U is uniform.
Definition at line 3404 of file AMDGPUBaseInfo.cpp.
References llvm::cast(), and isTriviallyUniform().
| bool llvm::AMDGPU::isTriviallyUniform | ( | const Value * | V, |
| const Instruction * | CtxI ) |
Return true if we can easily prove that V is uniform at CtxI.
Definition at line 3389 of file AMDGPUBaseInfo.cpp.
References A(), llvm::dyn_cast(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), II, llvm::isa(), isArgPassedInSGPR(), isIntrinsicAlwaysUniform(), and V.
Referenced by hasUniformPointerOperand(), llvm::GCNTTIImpl::hoistLaneIntrinsicThroughOperand(), llvm::GCNTTIImpl::instCombineIntrinsic(), and isTriviallyUniform().
| LLVM_READONLY bool llvm::AMDGPU::isTrue16Inst | ( | unsigned | Opc | ) |
Definition at line 835 of file AMDGPUBaseInfo.cpp.
References Opc.
| bool llvm::AMDGPU::isUniformMMO | ( | const MachineMemOperand * | MMO | ) |
Definition at line 29 of file AMDGPUInstrInfo.cpp.
References llvm::AMDGPUAS::CONSTANT_ADDRESS_32BIT, llvm::dyn_cast(), llvm::MachineMemOperand::getAddrSpace(), llvm::MachineMemOperand::getPseudoValue(), llvm::MachineMemOperand::getValue(), I, llvm::isa(), and isArgPassedInSGPR().
Referenced by llvm::AMDGPURegisterBankInfo::isScalarLoadLegal(), llvm::SITargetLowering::isUniformLoad(), llvm::AMDGPU::RegBankLegalizeRules::RegBankLegalizeRules(), and llvm::AMDGPUTargetLowering::shouldReduceLoadWidth().
| bool llvm::AMDGPU::isUnscaledIEEEDivFmas | ( | const MachineInstr & | MI, |
| const MachineRegisterInfo & | MRI ) |
Return whether div.fmas can use ordinary FMA without changing denormals.
Definition at line 26 of file AMDGPUGlobalISelUtils.cpp.
References llvm::getDefIgnoringCopies(), llvm::getFltSemanticForLLT(), llvm::getIConstantVRegValWithLookThrough(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::DenormalMode::IEEE, MI, and MRI.
Referenced by llvm::AMDGPURegisterBankInfo::getInstrMapping(), and llvm::AMDGPU::RegBankLegalizeRules::RegBankLegalizeRules().
| LLVM_READNONE bool llvm::AMDGPU::isValid32BitLiteral | ( | uint64_t | Val, |
| bool | IsFP64 ) |
Definition at line 3168 of file AMDGPUBaseInfo.cpp.
References llvm::isInt(), llvm::isUInt(), llvm::Lo_32(), and uint64_t.
Referenced by llvm::SIInstrInfo::getInstSizeInBytes(), llvm::SIInstrInfo::isOperandLegal(), llvm::AMDGPUDAGToDAGISel::Select(), and llvm::SIInstrInfo::verifyInstruction().
|
constexpr |
Mask is a legal stage mask operand of the asyncmark / wait_asyncmark intrinsics and pseudos. Definition at line 88 of file AMDGPUAsyncStages.h.
References ALL, and llvm::to_underlying().
Referenced by asyncStagesFromMaskOperand(), and llvm::SIInstrInfo::verifyInstruction().
Definition at line 1509 of file AMDGPUBaseInfo.cpp.
References C().
Referenced by parseAsmPhysRegName().
| LLVM_READONLY bool llvm::AMDGPU::isValidWMMAScaleFmtCombination | ( | unsigned | AFmt, |
| unsigned | AScale, | ||
| unsigned | BFmt, | ||
| unsigned | BScale ) |
Definition at line 651 of file AMDGPUBaseInfo.cpp.
References isValid(), llvm::AMDGPU::WMMA::MATRIX_FMT_BF6, llvm::AMDGPU::WMMA::MATRIX_FMT_BF8, llvm::AMDGPU::WMMA::MATRIX_FMT_FP4, llvm::AMDGPU::WMMA::MATRIX_FMT_FP6, llvm::AMDGPU::WMMA::MATRIX_FMT_FP8, llvm::AMDGPU::WMMA::MATRIX_SCALE_FMT_E4M3, llvm::AMDGPU::WMMA::MATRIX_SCALE_FMT_E5M3, and llvm::AMDGPU::WMMA::MATRIX_SCALE_FMT_E8.
| bool llvm::AMDGPU::isVI | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2434 of file AMDGPUBaseInfo.cpp.
References llvm::MCSubtargetInfo::hasFeature().
Referenced by llvm::AMDGPU::MTBUFFormat::getNfmtLookupTable(), isGFX8_GFX9_GFX10(), isGFX8Plus(), and isNotGFX10Plus().
| LLVM_READONLY bool llvm::AMDGPU::isVOPC64DPP | ( | unsigned | Opc | ) |
Definition at line 578 of file AMDGPUBaseInfo.cpp.
References Opc.
Referenced by llvm::AMDGPUDisassembler::getInstruction().
| LLVM_READONLY bool llvm::AMDGPU::isVOPCAsmOnly | ( | unsigned | Opc | ) |
Definition at line 582 of file AMDGPUBaseInfo.cpp.
References Opc.
| LLVM_READONLY bool llvm::AMDGPU::isVOPD | ( | unsigned | Opc | ) |
Definition at line 719 of file AMDGPUBaseInfo.cpp.
References hasNamedOperand(), and Opc.
Referenced by llvm::AMDGPUDisassembler::decodeNonVGPRSrcOp(), getSrcOperandIndices(), and getVGPRLoweringOperandTables().
Definition at line 606 of file AMDGPUBaseInfo.h.
References getWMMAMatrixFmts(), llvm::AMDGPU::WMMA::MATRIX_FMT_BF8, and MI.
Definition at line 612 of file AMDGPUBaseInfo.h.
References getWMMAMatrixFmts(), llvm::AMDGPU::WMMA::MATRIX_FMT_FP4, and MI.
| llvm::AMDGPU::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE | ( | ) |
| const RsrcIntrinsic * llvm::AMDGPU::lookupRsrcIntrinsic | ( | unsigned | Intr | ) |
|
constexpr |
If LLVMAddressSpace has a corresponding DWARF encoding, return it; otherwise return the sentinel value -1 to indicate no such mapping exists.
This maps private/scratch to the focused lane view.
These mappings must be kept in sync with llvm/docs/AMDGPUUsage.md table "AMDGPU DWARF Address Space Mapping".
Note: This could return std::optional<int> but that would require an extra #include.
Definition at line 188 of file AMDGPUAddrSpace.h.
References llvm::AMDGPU::impl::LLVMToDWARFAddrSpaceMapping.
| LLVM_READONLY unsigned llvm::AMDGPU::mapWMMA2AddrTo3AddrOpcode | ( | unsigned | Opc | ) |
Definition at line 857 of file AMDGPUBaseInfo.cpp.
References Opc.
|
inline |
Provided with the MCExpr * Val, uint32 Mask and Shift, will return the right shifted and masked, in said order of operations, MCExpr * created within the MCContext Ctx.
For example, given MCExpr *Val, Mask == 0xf, Shift == 6 the returned MCExpr
Definition at line 63 of file SIDefinesUtils.h.
References llvm::MCConstantExpr::create(), llvm::MCBinaryExpr::createAnd(), and llvm::MCBinaryExpr::createLShr().
|
inline |
Provided with the MCExpr * Val, uint32 Mask and Shift, will return the masked and left shifted, in said order of operations, MCExpr * created within the MCContext Ctx.
For example, given MCExpr *Val, Mask == 0xf, Shift == 6 the returned MCExpr
Definition at line 44 of file SIDefinesUtils.h.
References llvm::MCConstantExpr::create(), llvm::MCBinaryExpr::createAnd(), and llvm::MCBinaryExpr::createShl().
Referenced by llvm::AMDGPU::AMDGPUMCKernelCodeT::EmitKernelCodeT().
|
constexpr |
Return true if we might ever do TCO for calls with this calling convention.
Definition at line 1488 of file AMDGPUBaseInfo.h.
References llvm::CallingConv::AMDGPU_Gfx, llvm::CallingConv::AMDGPU_Gfx_WholeWave, llvm::CallingConv::C, canGuaranteeTCO(), and CC.
Referenced by llvm::AMDGPUCallLowering::isEligibleForTailCallOptimization(), and llvm::SITargetLowering::isEligibleForTailCallOptimization().
| LLVM_READNONE MCRegister llvm::AMDGPU::mc2PseudoReg | ( | MCRegister | Reg | ) |
Convert hardware register Reg to a pseudo register.
Definition at line 2692 of file AMDGPUBaseInfo.cpp.
References MAP_REG2REG, and Reg.
Referenced by checkWriteLane().
|
static |
Definition at line 139 of file AMDGPUAsanInstrumentation.cpp.
References llvm::IRBuilderBase::CreateAdd(), and llvm::IRBuilderBase::CreateLShr().
Referenced by instrumentAddressImpl().
Returns the effective triple appropriate to use when linking B into A by merging the subarches in case of inexact match.
In cases where isSubArchCompatible would return / false, returns B. This assumes that the non-arch triple components are the same
Definition at line 252 of file AMDGPUTargetParser.cpp.
References A(), B(), getMajorSubArch(), and llvm::Triple::NoSubArch.
Referenced by llvm::Triple::merge().
| LLVM_READNONE uint8_t llvm::AMDGPU::mfmaScaleF8F6F4FormatToNumRegs | ( | unsigned | EncodingVal | ) |
Definition at line 604 of file AMDGPUBaseInfo.cpp.
References llvm::AMDGPU::MFMAScaleFormats::FP4_E2M1, llvm::AMDGPU::MFMAScaleFormats::FP6_E2M3, llvm::AMDGPU::MFMAScaleFormats::FP6_E3M2, llvm::AMDGPU::MFMAScaleFormats::FP8_E4M3, llvm::AMDGPU::MFMAScaleFormats::FP8_E5M2, and llvm_unreachable.
Referenced by getMFMA_F8F6F4_WithFormatArgs().
|
inline |
Print the stages named by Mask as a '|'-separated list, or "all" if it names every stage.
Definition at line 124 of file AMDGPUAsyncStages.h.
References ALL, asyncStages(), getAsyncStageName(), llvm::interleave(), and NONE.
|
inline |
Definition at line 423 of file AMDGPUTargetParser.h.
References llvm::AMDGPU::TargetID::print().
| AMDGPU::GPUKind llvm::AMDGPU::parseArchAMDGCN | ( | StringRef | CPU | ) |
Definition at line 305 of file AMDGPUTargetParser.cpp.
Referenced by llvm::AMDGPUTargetMachine::AMDGPUTargetMachine(), llvm::AMDGPU::TargetID::createFromSubtargetFeatures(), llvm::AMDGPUAsmPrinter::doInitialization(), fillAMDGCNFeatureMap(), fillAMDGPUFeatureMap(), getCanonicalArchName(), llvm::AMDGPUTargetStreamer::getElfMach(), getGPUKindFromTargetID(), getIsaVersion(), llvm::AMDGPU::IsaInfo::getMaxNumSGPRs(), llvm::AMDGPU::IsaInfo::getMaxNumVGPRs(), llvm::AMDGPU::IsaInfo::getMaxWorkGroupsPerCU(), llvm::AMDGPU::IsaInfo::getMinNumSGPRs(), llvm::AMDGPU::IsaInfo::getMinNumVGPRs(), llvm::AMDGPU::IsaInfo::getNumWavesPerEUWithNumVGPRs(), llvm::AMDGPU::IsaInfo::getOccupancyWithNumSGPRs(), getSubArchFromGPUName(), llvm::GCNTargetMachine::getSubtargetImpl(), isCPUValidForSubArch(), and isPseudoTarget().
| AMDGPU::GPUKind llvm::AMDGPU::parseArchR600 | ( | StringRef | CPU | ) |
Definition at line 310 of file AMDGPUTargetParser.cpp.
Referenced by fillAMDGPUFeatureMap(), getCanonicalArchName(), and llvm::AMDGPUTargetStreamer::getElfMach().
| std::tuple< char, unsigned, unsigned > llvm::AMDGPU::parseAsmConstraintPhysReg | ( | StringRef | Constraint | ) |
Returns a valid charcode or 0 in the first entry if this is a valid physical register constraint.
Followed by the start register number, and the register width. Does not validate the number of registers exists in the class.
Definition at line 1544 of file AMDGPUBaseInfo.cpp.
References parseAsmPhysRegName(), and RegName.
Referenced by llvm::SITargetLowering::getRegForInlineAsmConstraint().
Returns a valid charcode or 0 in the first entry if this is a valid physical register name.
Followed by the start register number, and the register width. Does not validate the number of registers exists in the class. Unlike parseAsmConstraintPhysReg, this does not expect the name to be wrapped in "{}".
Definition at line 1513 of file AMDGPUBaseInfo.cpp.
References llvm::End, llvm::Failed(), Idx, isValidRegPrefix(), and RegName.
Referenced by parseAsmConstraintPhysReg().
| void llvm::AMDGPU::printAMDGPUMCExpr | ( | const MCExpr * | Expr, |
| raw_ostream & | OS, | ||
| const MCAsmInfo * | MAI ) |
Definition at line 750 of file AMDGPUMCExpr.cpp.
References llvm::MCAsmInfo::printExpr().
Referenced by llvm::AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor(), and llvm::AMDGPUTargetAsmStreamer::EmitAMDKernelCodeT().
| void llvm::AMDGPU::removeFnAttrFromReachable | ( | CallGraph & | CG, |
| Function * | KernelRoot, | ||
| ArrayRef< StringRef > | FnAttrs ) |
Strip FnAttr attribute from any functions where we may have introduced its use.
Definition at line 333 of file AMDGPUMemoryUtils.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), F, llvm::CallGraph::getExternalCallingNode(), llvm::Function::getFunction(), llvm::SmallPtrSetImpl< PtrType >::insert(), isKernel(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Function::removeFnAttr().
TT, false otherwise. Definition at line 1505 of file AMDGPUBaseInfo.cpp.
References llvm::Triple::r600.
Referenced by llvm::AMDGPUTargetObjectFile::SelectSectionForGlobal(), and llvm::SITargetLowering::shouldEmitFixup().
| bool llvm::AMDGPU::supportsScaleOffset | ( | const MCInstrInfo & | MII, |
| unsigned | Opcode ) |
Definition at line 3613 of file AMDGPUBaseInfo.cpp.
References llvm::MCInstrInfo::get(), getSMEMIsBuffer(), hasNamedOperand(), llvm::SIInstrFlags::isFLAT(), llvm::SIInstrFlags::isFlatScratch(), and llvm::SIInstrFlags::isSMRD().
Referenced by llvm::SIInstrInfo::verifyInstruction().
| bool llvm::AMDGPU::supportsWGP | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 2521 of file AMDGPUBaseInfo.cpp.
References isGFX10Plus(), and isGFX1250().
Referenced by llvm::AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor().
|
static |
Definition at line 52 of file AMDGPUAsanInstrumentation.cpp.
References llvm::countr_zero().
Referenced by instrumentAddressImpl().
| LLVM_READNONE uint8_t llvm::AMDGPU::wmmaScaleF8F6F4FormatToNumRegs | ( | unsigned | Fmt | ) |
Definition at line 628 of file AMDGPUBaseInfo.cpp.
References llvm_unreachable, llvm::AMDGPU::WMMA::MATRIX_FMT_BF6, llvm::AMDGPU::WMMA::MATRIX_FMT_BF8, llvm::AMDGPU::WMMA::MATRIX_FMT_FP4, llvm::AMDGPU::WMMA::MATRIX_FMT_FP6, and llvm::AMDGPU::WMMA::MATRIX_FMT_FP8.
Referenced by getWMMA_F8F6F4_WithFormatArgs(), and llvm::GCNTTIImpl::instCombineIntrinsic().
|
inlineconstexpr |
The name of each stage, indexed by the position of its bit.
Definition at line 72 of file AMDGPUAsyncStages.h.
Referenced by getAsyncStageName().
|
staticconstexpr |
Offset of nonstandard values for llvm.get.rounding results from the largest supported mode.
Definition at line 140 of file SIModeRegisterDefaults.h.
Referenced by decodeFltRoundToHWConversionTable(), decodeIndexFltRoundConversionTable(), encodeFltRoundsTable(), encodeFltRoundsToHWTable(), and encodeFltRoundsToHWTableSame().
|
staticconstexpr |
Offset in mode register of f32 rounding mode.
Definition at line 143 of file SIModeRegisterDefaults.h.
Referenced by getModeRegisterRoundMode().
|
staticconstexpr |
Offset in mode register of f64/f16 rounding mode.
Definition at line 146 of file SIModeRegisterDefaults.h.
Referenced by getModeRegisterRoundMode().
Definition at line 74 of file SIModeRegisterDefaults.cpp.
Referenced by decodeIndexFltRoundConversionTable(), and llvm::SITargetLowering::lowerGET_ROUNDING().
Definition at line 188 of file SIModeRegisterDefaults.cpp.
Referenced by decodeFltRoundToHW(), decodeFltRoundToHWConversionTable(), decodeFltRoundToHWConversionTable(), and llvm::SITargetLowering::lowerSET_ROUNDING().
|
staticconstexpr |
Definition at line 81 of file AMDGPULaneMaskUtils.h.
Referenced by llvm::AMDGPU::LaneMaskConstants::get().
|
staticconstexpr |
Definition at line 83 of file AMDGPULaneMaskUtils.h.
Referenced by llvm::AMDGPU::LaneMaskConstants::get().
|
constexpr |
Max stages: INT8 16x16x64 = 17 cycles, round up for safety.
Definition at line 221 of file AMDGPUCoExecInfo.h.
Referenced by llvm::AMDGPU::CoExecInfo::build(), llvm::AMDGPU::CoExecInfo::CoExecInfo(), getMFMACoExecInfo(), and llvm::GCNHazardRecognizer::~GCNHazardRecognizer().
|
staticconstexpr |
Definition at line 34 of file AMDGPUMemoryUtils.h.
Referenced by getNumNamedBarriersDeclared().
|
inlineconstexpr |
The number of stages, which is also the number of bits in a stage mask.
Definition at line 69 of file AMDGPUAsyncStages.h.
Referenced by asyncStages().
| const int llvm::AMDGPU::OPR_ID_DUPLICATE = -3 |
Definition at line 25 of file AMDGPUAsmUtils.h.
Referenced by encodeCustomOperand().
| const int llvm::AMDGPU::OPR_ID_UNKNOWN = -1 |
Definition at line 23 of file AMDGPUAsmUtils.h.
Referenced by encodeCustomOperand(), and getEncodingFromOperandTable().
| const int llvm::AMDGPU::OPR_ID_UNSUPPORTED = -2 |
Definition at line 24 of file AMDGPUAsmUtils.h.
Referenced by encodeCustomOperand(), and getEncodingFromOperandTable().
| const int llvm::AMDGPU::OPR_VAL_INVALID = -4 |
Definition at line 26 of file AMDGPUAsmUtils.h.
Referenced by encodeCustomOperandVal().
Definition at line 2042 of file SIInstrInfo.h.
Referenced by llvm::SIInstrInfo::getDefaultRsrcDataFormat().
Definition at line 2043 of file SIInstrInfo.h.
Referenced by llvm::SIInstrInfo::getScratchRsrcWords23().
Definition at line 2044 of file SIInstrInfo.h.
Referenced by llvm::SIInstrInfo::getScratchRsrcWords23().
Definition at line 2045 of file SIInstrInfo.h.
Referenced by llvm::SIInstrInfo::getScratchRsrcWords23().