LLVM 22.0.0git
SPIRVISelLowering.cpp File Reference
#include "SPIRVISelLowering.h"
#include "SPIRV.h"
#include "SPIRVInstrInfo.h"
#include "SPIRVRegisterBankInfo.h"
#include "SPIRVRegisterInfo.h"
#include "SPIRVSubtarget.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 bool typesLogicallyMatch (const SPIRVType *Ty1, const SPIRVType *Ty2, SPIRVGlobalRegistry &GR)
Register getTypeReg (MachineRegisterInfo *MRI, Register OpReg)
static void doInsertBitcast (const SPIRVSubtarget &STI, MachineRegisterInfo *MRI, SPIRVGlobalRegistry &GR, MachineInstr &I, Register OpReg, unsigned OpIdx, SPIRVType *NewPtrType)
static SPIRVTypecreateNewPtrType (SPIRVGlobalRegistry &GR, MachineInstr &I, SPIRVType *OpType, bool ReuseType, SPIRVType *ResType, const Type *ResTy)
static void validatePtrTypes (const SPIRVSubtarget &STI, MachineRegisterInfo *MRI, SPIRVGlobalRegistry &GR, MachineInstr &I, unsigned OpIdx, SPIRVType *ResType, const Type *ResTy=nullptr)
static void validateGroupWaitEventsPtr (const SPIRVSubtarget &STI, MachineRegisterInfo *MRI, SPIRVGlobalRegistry &GR, MachineInstr &I)
static void validateLifetimeStart (const SPIRVSubtarget &STI, MachineRegisterInfo *MRI, SPIRVGlobalRegistry &GR, MachineInstr &I)
static void validatePtrUnwrapStructField (const SPIRVSubtarget &STI, MachineRegisterInfo *MRI, SPIRVGlobalRegistry &GR, MachineInstr &I, unsigned OpIdx)
void validateFunCallMachineDef (const SPIRVSubtarget &STI, MachineRegisterInfo *DefMRI, MachineRegisterInfo *CallMRI, SPIRVGlobalRegistry &GR, MachineInstr &FunCall, MachineInstr *FunDef)
const FunctionvalidateFunCall (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)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "spirv-lower"

Definition at line 23 of file SPIRVISelLowering.cpp.

Function Documentation

◆ createNewPtrType()

◆ doInsertBitcast()

◆ getTypeReg()

◆ typesLogicallyMatch()

◆ validateAccessChain()

◆ validateForwardCalls()

◆ validateFunCall()

◆ validateFunCallMachineDef()

◆ validateGroupWaitEventsPtr()

◆ validateLifetimeStart()

◆ validatePtrTypes()

◆ validatePtrUnwrapStructField()