LLVM 19.0.0git
|
#include "SPIRVISelLowering.h"
#include "SPIRV.h"
#include "SPIRVInstrInfo.h"
#include "SPIRVRegisterBankInfo.h"
#include "SPIRVRegisterInfo.h"
#include "SPIRVSubtarget.h"
#include "SPIRVTargetMachine.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/IR/IntrinsicsSPIRV.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "spirv-lower" |
Functions | |
static void | validatePtrTypes (const SPIRVSubtarget &STI, MachineRegisterInfo *MRI, SPIRVGlobalRegistry &GR, MachineInstr &I, unsigned OpIdx, SPIRVType *ResType, const Type *ResTy=nullptr) |
void | validateFunCallMachineDef (const SPIRVSubtarget &STI, MachineRegisterInfo *DefMRI, MachineRegisterInfo *CallMRI, SPIRVGlobalRegistry &GR, MachineInstr &FunCall, MachineInstr *FunDef) |
const Function * | validateFunCall (const SPIRVSubtarget &STI, MachineRegisterInfo *CallMRI, SPIRVGlobalRegistry &GR, MachineInstr &FunCall) |
void | validateForwardCalls (const SPIRVSubtarget &STI, MachineRegisterInfo *DefMRI, SPIRVGlobalRegistry &GR, MachineInstr &FunDef) |
void | validateAccessChain (const SPIRVSubtarget &STI, MachineRegisterInfo *MRI, SPIRVGlobalRegistry &GR, MachineInstr &I) |
#define DEBUG_TYPE "spirv-lower" |
Definition at line 24 of file SPIRVISelLowering.cpp.
void validateAccessChain | ( | const SPIRVSubtarget & | STI, |
MachineRegisterInfo * | MRI, | ||
SPIRVGlobalRegistry & | GR, | ||
MachineInstr & | I | ||
) |
Definition at line 215 of file SPIRVISelLowering.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), I, MRI, and validatePtrTypes().
Referenced by llvm::SPIRVTargetLowering::finalizeLowering().
void validateForwardCalls | ( | const SPIRVSubtarget & | STI, |
MachineRegisterInfo * | DefMRI, | ||
SPIRVGlobalRegistry & | GR, | ||
MachineInstr & | FunDef | ||
) |
Definition at line 202 of file SPIRVISelLowering.cpp.
References F, llvm::SPIRVGlobalRegistry::getForwardCalls(), llvm::SPIRVGlobalRegistry::getFunctionByDefinition(), and validateFunCallMachineDef().
Referenced by llvm::SPIRVTargetLowering::finalizeLowering().
const Function * validateFunCall | ( | const SPIRVSubtarget & | STI, |
MachineRegisterInfo * | CallMRI, | ||
SPIRVGlobalRegistry & | GR, | ||
MachineInstr & | FunCall | ||
) |
Definition at line 185 of file SPIRVISelLowering.cpp.
References F, llvm::SPIRVGlobalRegistry::getFunctionDefinition(), llvm::MachineOperand::getGlobal(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineFunction::getRegInfo(), and validateFunCallMachineDef().
Referenced by llvm::SPIRVTargetLowering::finalizeLowering().
void validateFunCallMachineDef | ( | const SPIRVSubtarget & | STI, |
MachineRegisterInfo * | DefMRI, | ||
MachineRegisterInfo * | CallMRI, | ||
SPIRVGlobalRegistry & | GR, | ||
MachineInstr & | FunCall, | ||
MachineInstr * | FunDef | ||
) |
Definition at line 149 of file SPIRVISelLowering.cpp.
References llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getTypeForSPIRVType(), llvm::MachineRegisterInfo::getVRegDef(), llvm::SPIRVGlobalRegistry::setCurrentFunc(), and validatePtrTypes().
Referenced by validateForwardCalls(), and validateFunCall().
|
static |
Definition at line 87 of file SPIRVISelLowering.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineInstrBuilder::constrainAllUses(), llvm::MachineOperand::getImm(), llvm::SPIRVSubtarget::getInstrInfo(), llvm::MachineIRBuilder::getMF(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVPointerType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::SPIRVSubtarget::getRegBankInfo(), llvm::SPIRVSubtarget::getRegisterInfo(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::SPIRVGlobalRegistry::getTypeForSPIRVType(), I, llvm::SPIRVGlobalRegistry::isBitcastCompatible(), MRI, llvm::report_fatal_error(), and llvm::LLT::scalar().
Referenced by llvm::SPIRVTargetLowering::finalizeLowering(), validateAccessChain(), and validateFunCallMachineDef().