Go to the documentation of this file.
13 #ifndef LLVM_LIB_TARGET_SPIRV_SPIRVUTILS_H
14 #define LLVM_LIB_TARGET_SPIRV_SPIRVUTILS_H
22 class MachineFunction;
24 class MachineInstrBuilder;
25 class MachineIRBuilder;
26 class MachineRegisterInfo;
35 void addStringImm(
const StringRef &Str, MachineInstrBuilder &MIB);
37 std::vector<Value *> &
Args);
41 std::string
getStringImm(
const MachineInstr &
MI,
unsigned StartIndex);
44 void addNumImm(
const APInt &
Imm, MachineInstrBuilder &MIB);
48 MachineIRBuilder &MIRBuilder);
52 SPIRV::Decoration::Decoration Dec,
53 const std::vector<uint32_t> &DecArgs,
54 StringRef StrImm =
"");
56 SPIRV::Decoration::Decoration Dec,
57 const std::vector<uint32_t> &DecArgs,
58 StringRef StrImm =
"");
67 SPIRV::MemorySemantics::MemorySemantics
76 const MachineRegisterInfo *
MRI);
87 #endif // LLVM_LIB_TARGET_SPIRV_SPIRVUTILS_H
This is an optimization pass for GlobalISel generic memory operations.
Reg
All possible values of the reg field in the ModR/M byte.
void addStringImm(const StringRef &Str, MCInst &Inst)
@ SC
CHAIN = SC CHAIN, Imm128 - System call.
void buildOpName(Register Target, const StringRef &Name, MachineIRBuilder &MIRBuilder)
COFF::SymbolStorageClass StorageClass
const HexagonInstrInfo * TII
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
SPIRV::StorageClass::StorageClass addressSpaceToStorageClass(unsigned AddrSpace)
Promote Memory to Register
Type * getMDOperandAsType(const MDNode *N, unsigned I)
AtomicOrdering
Atomic ordering for LLVM's memory model.
SPIRV::MemorySemantics::MemorySemantics getMemSemantics(AtomicOrdering Ord)
std::string getStringImm(const MachineInstr &MI, unsigned StartIndex)
uint64_t getIConstVal(Register ConstReg, const MachineRegisterInfo *MRI)
MachineInstr * getDefInstrMaybeConstant(Register &ConstReg, const MachineRegisterInfo *MRI)
void addNumImm(const APInt &Imm, MachineInstrBuilder &MIB)
unsigned const MachineRegisterInfo * MRI
SPIRV::MemorySemantics::MemorySemantics getMemSemanticsForStorageClass(SPIRV::StorageClass::StorageClass SC)
unsigned storageClassToAddressSpace(SPIRV::StorageClass::StorageClass SC)
void buildOpDecorate(Register Reg, MachineIRBuilder &MIRBuilder, SPIRV::Decoration::Decoration Dec, const std::vector< uint32_t > &DecArgs, StringRef StrImm)
bool isSpvIntrinsic(MachineInstr &MI, Intrinsic::ID IntrinsicID)
constexpr char Args[]
Key for Kernel::Metadata::mArgs.