LLVM 22.0.0git
|
#include "AMDKernelCodeT.h"
#include "MCTargetDesc/AMDGPUInstPrinter.h"
#include "MCTargetDesc/AMDGPUMCAsmInfo.h"
#include "MCTargetDesc/AMDGPUMCExpr.h"
#include "MCTargetDesc/AMDGPUMCKernelDescriptor.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "MCTargetDesc/AMDGPUTargetStreamer.h"
#include "SIDefines.h"
#include "SIInstrInfo.h"
#include "TargetInfo/AMDGPUTargetInfo.h"
#include "Utils/AMDGPUAsmUtils.h"
#include "Utils/AMDGPUBaseInfo.h"
#include "Utils/AMDKernelCodeTUtils.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/ADT/Twine.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/CodeGenTypes/MachineValueType.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCParser/AsmLexer.h"
#include "llvm/MC/MCParser/MCAsmParser.h"
#include "llvm/MC/MCParser/MCParsedAsmOperand.h"
#include "llvm/MC/MCParser/MCTargetAsmParser.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/AMDGPUMetadata.h"
#include "llvm/Support/AMDHSAKernelDescriptor.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/TargetParser/TargetParser.h"
#include <optional>
#include "AMDGPUGenAsmMatcher.inc"
Go to the source code of this file.
Classes | |
struct | RegInfo |
Macros | |
#define | PARSE_BITS_ENTRY(FIELD, ENTRY, VALUE, RANGE) |
#define | EXPR_RESOLVE_OR_ERROR(RESOLVED) |
#define | GET_REGISTER_MATCHER |
#define | GET_MATCHER_IMPLEMENTATION |
#define | GET_MNEMONIC_SPELL_CHECKER |
#define | GET_MNEMONIC_CHECKER |
Auto-generated Match Functions | |
{ | |
#define | GET_ASSEMBLER_HEADER |
Typedefs | |
using | OperandIndices = SmallVector<int16_t, MAX_SRC_OPERANDS_NUM> |
Variables | |
static constexpr RegInfo | RegularRegisters [] |
constexpr unsigned | MAX_SRC_OPERANDS_NUM = 6 |
constexpr uint64_t | MIMGFlags |
#define EXPR_RESOLVE_OR_ERROR | ( | RESOLVED | ) |
#define GET_ASSEMBLER_HEADER |
Definition at line 1349 of file AMDGPUAsmParser.cpp.
#define GET_MATCHER_IMPLEMENTATION |
Definition at line 10340 of file AMDGPUAsmParser.cpp.
#define GET_MNEMONIC_CHECKER |
Definition at line 10342 of file AMDGPUAsmParser.cpp.
#define GET_MNEMONIC_SPELL_CHECKER |
Definition at line 10341 of file AMDGPUAsmParser.cpp.
#define GET_REGISTER_MATCHER |
Definition at line 10339 of file AMDGPUAsmParser.cpp.
using OperandIndices = SmallVector<int16_t, MAX_SRC_OPERANDS_NUM> |
Definition at line 3713 of file AMDGPUAsmParser.cpp.
|
static |
Definition at line 7199 of file AMDGPUAsmParser.cpp.
References llvm::MCInst::addOperand(), llvm::MCInst::begin(), llvm::MCOperand::createImm(), Default, llvm::MCInst::insert(), and Operands.
|
static |
Definition at line 9607 of file AMDGPUAsmParser.cpp.
|
static |
|
static |
|
static |
References llvm::AsmToken::EndOfStatement, Info, Mode, and Operands.
Definition at line 2035 of file AMDGPUAsmParser.cpp.
References llvm::APFloat::convert(), getFltSemantics(), llvm::APFloatBase::opOK, llvm::APFloatBase::opOverflow, llvm::APFloatBase::opUnderflow, and llvm::APFloatBase::rmNearestTiesToEven.
Definition at line 3762 of file AMDGPUAsmParser.cpp.
References llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::MCOperand::isReg(), llvm::M0(), and llvm::AMDGPU::mc2PseudoReg().
|
static |
Definition at line 9008 of file AMDGPUAsmParser.cpp.
|
static |
Definition at line 9000 of file AMDGPUAsmParser.cpp.
References Mul.
|
static |
Definition at line 9121 of file AMDGPUAsmParser.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, assert(), llvm::SISrcMods::DST_OP_SEL, llvm::MCOperand::getImm(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::DstOp::getReg(), llvm::AMDGPU::hasNamedOperand(), llvm::AMDGPU::isHi16Reg(), MRI, Opc, and llvm::MCOperand::setImm().
|
static |
Definition at line 8512 of file AMDGPUAsmParser.cpp.
References llvm::AMDGPU::Swizzle::BITMASK_AND_SHIFT, llvm::AMDGPU::Swizzle::BITMASK_OR_SHIFT, llvm::AMDGPU::Swizzle::BITMASK_PERM_ENC, and llvm::AMDGPU::Swizzle::BITMASK_XOR_SHIFT.
|
static |
Definition at line 7696 of file AMDGPUAsmParser.cpp.
References decode(), llvm::encode(), and llvm::Failed().
Definition at line 3549 of file AMDGPUAsmParser.cpp.
References llvm::ArrayRef(), llvm::AMDGPUAsmVariants::DEFAULT, llvm::AMDGPUAsmVariants::DPP, llvm::AMDGPUAsmVariants::SDWA, llvm::AMDGPUAsmVariants::SDWA9, llvm::AMDGPUAsmVariants::VOP3, and llvm::AMDGPUAsmVariants::VOP3_DPP.
|
static |
Definition at line 1984 of file AMDGPUAsmParser.cpp.
References getFltSemantics(), and llvm::MVT::getSizeInBits().
|
static |
Definition at line 1971 of file AMDGPUAsmParser.cpp.
References llvm::APFloatBase::IEEEdouble(), llvm::APFloatBase::IEEEhalf(), llvm::APFloatBase::IEEEsingle(), llvm_unreachable, and Size.
Referenced by canLosslesslyConvertToFPType(), and getFltSemantics().
|
static |
Definition at line 1988 of file AMDGPUAsmParser.cpp.
References llvm::APFloatBase::BFloat(), llvm::APFloatBase::IEEEdouble(), llvm::APFloatBase::IEEEhalf(), llvm::APFloatBase::IEEEsingle(), llvm_unreachable, llvm::AMDGPU::OPERAND_INLINE_SPLIT_BARRIER_INT32, llvm::AMDGPU::OPERAND_KIMM16, llvm::AMDGPU::OPERAND_KIMM32, llvm::AMDGPU::OPERAND_KIMM64, llvm::AMDGPU::OPERAND_REG_IMM_BF16, llvm::AMDGPU::OPERAND_REG_IMM_FP16, llvm::AMDGPU::OPERAND_REG_IMM_FP32, llvm::AMDGPU::OPERAND_REG_IMM_FP64, llvm::AMDGPU::OPERAND_REG_IMM_INT16, llvm::AMDGPU::OPERAND_REG_IMM_INT32, llvm::AMDGPU::OPERAND_REG_IMM_INT64, llvm::AMDGPU::OPERAND_REG_IMM_NOINLINE_V2FP16, llvm::AMDGPU::OPERAND_REG_IMM_V2BF16, llvm::AMDGPU::OPERAND_REG_IMM_V2FP16, llvm::AMDGPU::OPERAND_REG_IMM_V2FP32, llvm::AMDGPU::OPERAND_REG_IMM_V2INT16, llvm::AMDGPU::OPERAND_REG_IMM_V2INT32, llvm::AMDGPU::OPERAND_REG_INLINE_AC_FP32, llvm::AMDGPU::OPERAND_REG_INLINE_AC_FP64, llvm::AMDGPU::OPERAND_REG_INLINE_AC_INT32, llvm::AMDGPU::OPERAND_REG_INLINE_C_BF16, llvm::AMDGPU::OPERAND_REG_INLINE_C_FP16, llvm::AMDGPU::OPERAND_REG_INLINE_C_FP32, llvm::AMDGPU::OPERAND_REG_INLINE_C_FP64, llvm::AMDGPU::OPERAND_REG_INLINE_C_INT16, llvm::AMDGPU::OPERAND_REG_INLINE_C_INT32, llvm::AMDGPU::OPERAND_REG_INLINE_C_INT64, llvm::AMDGPU::OPERAND_REG_INLINE_C_V2BF16, llvm::AMDGPU::OPERAND_REG_INLINE_C_V2FP16, and llvm::AMDGPU::OPERAND_REG_INLINE_C_V2INT16.
|
static |
Definition at line 2521 of file AMDGPUAsmParser.cpp.
Definition at line 2787 of file AMDGPUAsmParser.cpp.
Definition at line 2780 of file AMDGPUAsmParser.cpp.
References Reg, and RegularRegisters.
|
static |
Definition at line 2634 of file AMDGPUAsmParser.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), and RegName.
|
static |
Definition at line 3717 of file AMDGPUAsmParser.cpp.
References llvm::AMDGPU::isVOPD().
|
static |
Definition at line 5060 of file AMDGPUAsmParser.cpp.
References llvm::MCRegisterClass::contains(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), MRI, OpIdx, Reg, and llvm::Sub.
Definition at line 2057 of file AMDGPUAsmParser.cpp.
References assert(), llvm::MVT::getScalarType(), llvm::AMDGPU::isInlinableLiteral32(), llvm::AMDGPU::isInlinableLiteralBF16(), and llvm::AMDGPU::isInlinableLiteralFP16().
|
static |
Definition at line 5687 of file AMDGPUAsmParser.cpp.
Definition at line 4244 of file AMDGPUAsmParser.cpp.
|
static |
Definition at line 9167 of file AMDGPUAsmParser.cpp.
References llvm::AMDGPU::OPERAND_INPUT_MODS, and llvm::MCOI::TIED_TO.
|
static |
Definition at line 2773 of file AMDGPUAsmParser.cpp.
Definition at line 4452 of file AMDGPUAsmParser.cpp.
Definition at line 2053 of file AMDGPUAsmParser.cpp.
References llvm::isIntN(), llvm::isUIntN(), and Size.
LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAMDGPUAsmParser | ( | ) |
Force static initialization.
Definition at line 10334 of file AMDGPUAsmParser.cpp.
References A(), B(), llvm::getTheGCNTarget(), and llvm::getTheR600Target().
|
constexpr |
Definition at line 3712 of file AMDGPUAsmParser.cpp.
|
constexpr |
Definition at line 4038 of file AMDGPUAsmParser.cpp.
|
staticconstexpr |
Definition at line 2765 of file AMDGPUAsmParser.cpp.
Referenced by getRegularRegInfo().