LLVM: lib/Target/SPIRV/SPIRVPostLegalizer.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
Functions
bool isTypeFoldingSupported (unsigned Opcode)
Register llvm::insertAssignInstr (Register Reg, Type *Ty, SPIRVType *SpirvTy, SPIRVGlobalRegistry *GR, MachineIRBuilder &MIB, MachineRegisterInfo &MRI)
Helper external function for inserting ASSIGN_TYPE instuction between Reg and its definition, set the new register as a destination of the definition, assign SPIRVType to both registers.
void llvm::processInstr (MachineInstr &MI, MachineIRBuilder &MIB, MachineRegisterInfo &MRI, SPIRVGlobalRegistry *GR)
static bool mayBeInserted (unsigned Opcode)
static void processNewInstrs (MachineFunction &MF, SPIRVGlobalRegistry *GR, MachineIRBuilder MIB)
void visit (MachineFunction &MF, MachineBasicBlock &Start, std::function< void(MachineBasicBlock *)> op)
void visit (MachineFunction &MF, std::function< void(MachineBasicBlock *)> op)

DEBUG_TYPE

#define DEBUG_TYPE "spirv-postlegalizer"

isTypeFoldingSupported()

mayBeInserted()

processNewInstrs()

Definition at line 74 of file SPIRVPostLegalizer.cpp.

References assert(), llvm::SPIRVGlobalRegistry::CurMF, llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), I, llvm::insertAssignInstr(), isTypeFoldingSupported(), llvm::Register::isValid(), mayBeInserted(), MBB, MRI, llvm::processInstr(), llvm::report_fatal_error(), and llvm::setRegClassType().

visit() [1/2]

visit() [2/2]