LLVM 22.0.0git
|
#include "SPIRV.h"
#include "SPIRVSubtarget.h"
#include "SPIRVUtils.h"
#include "llvm/IR/Attributes.h"
#include <stack>
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. |
Macros | |
#define | DEBUG_TYPE "spirv-postlegalizer" |
Functions | |
void | 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, SPIRVType *KnownResType) |
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) |
#define DEBUG_TYPE "spirv-postlegalizer" |
Definition at line 23 of file SPIRVPostLegalizer.cpp.
Definition at line 46 of file SPIRVPostLegalizer.cpp.
References llvm::isTypeFoldingSupported().
Referenced by processNewInstrs().
|
static |
Definition at line 62 of file SPIRVPostLegalizer.cpp.
References llvm::SPIRVGlobalRegistry::CurMF, llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), I, llvm::insertAssignInstr(), llvm::isTypeFoldingSupported(), llvm::Register::isValid(), mayBeInserted(), MBB, MRI, llvm::processInstr(), Register, llvm::report_fatal_error(), llvm::setRegClassType(), and UseMI.
void visit | ( | MachineFunction & | MF, |
MachineBasicBlock & | Start, | ||
std::function< void(MachineBasicBlock *)> | op ) |
Definition at line 125 of file SPIRVPostLegalizer.cpp.
References llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::SmallPtrSetImpl< PtrType >::insert(), MBB, and op.
Referenced by llvm::computeDeadSymbolsAndUpdateIndirectCalls(), llvm::ScalarEvolution::getLosslessPtrToIntExpr(), and visit().
void visit | ( | MachineFunction & | MF, |
std::function< void(MachineBasicBlock *)> | op ) |
Definition at line 149 of file SPIRVPostLegalizer.cpp.
References llvm::MachineFunction::begin(), op, and visit().