LLVM 17.0.0git
|
#include "Target/SPIRV/SPIRVGlobalRegistry.h"
Public Attributes | |
MachineFunction * | CurMF |
Definition at line 27 of file SPIRVGlobalRegistry.h.
SPIRVGlobalRegistry::SPIRVGlobalRegistry | ( | unsigned | PointerSize | ) |
Definition at line 25 of file SPIRVGlobalRegistry.cpp.
|
inline |
Definition at line 83 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::add(), and Arg.
|
inline |
Definition at line 71 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::add(), and llvm::CallingConv::C.
Referenced by addConstantsToTrack(), and llvm::SPIRVCallLowering::lowerFormalArguments().
|
inline |
Definition at line 79 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::add(), and F.
|
inline |
Definition at line 75 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::add().
SPIRVType * SPIRVGlobalRegistry::assignIntTypeToVReg | ( | unsigned | BitWidth, |
Register | VReg, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 28 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::BitWidth, CurMF, getOrCreateSPIRVIntegerType(), I, and TII.
void SPIRVGlobalRegistry::assignSPIRVTypeToVReg | ( | SPIRVType * | Type, |
Register | VReg, | ||
MachineFunction & | MF | ||
) |
Definition at line 56 of file SPIRVGlobalRegistry.cpp.
Referenced by assignIntTypeToVReg(), assignTypeToVReg(), assignVectTypeToVReg(), llvm::buildAtomicCompareExchangeInst(), llvm::buildBoolRegister(), llvm::buildBuiltinVariableLoad(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildLoadInst(), llvm::buildNDRange(), convertPtrToInt(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), getOrCreateConstNullPtr(), getOrCreateUndef(), llvm::insertAssignInstr(), llvm::SPIRVCallLowering::lowerCall(), and propagateSPIRVType().
SPIRVType * SPIRVGlobalRegistry::assignTypeToVReg | ( | const Type * | Type, |
Register | VReg, | ||
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::AccessQualifier::AccessQualifier | AQ = SPIRV::AccessQualifier::ReadWrite , |
||
bool | EmitIR = true |
||
) |
Definition at line 46 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by buildConstantFP(), buildConstantInt(), llvm::SPIRV::lowerBuiltin(), llvm::SPIRVCallLowering::lowerCall(), and llvm::SPIRVCallLowering::lowerFormalArguments().
SPIRVType * SPIRVGlobalRegistry::assignVectTypeToVReg | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
Register | VReg, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 37 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), CurMF, getOrCreateSPIRVVectorType(), I, and TII.
Register SPIRVGlobalRegistry::buildConstantFP | ( | APFloat | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType = nullptr |
||
) |
Definition at line 235 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), assert(), assignTypeToVReg(), llvm::BitWidth, llvm::MachineIRBuilder::buildFConstant(), llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::ConstantFP::get(), llvm::Type::getContext(), llvm::Type::getFloatTy(), llvm::MachineIRBuilder::getMF(), getScalarOrVectorBitWidth(), getTypeForSPIRVType(), llvm::Type::isFloatingPointTy(), llvm::Register::isValid(), and llvm::LLT::scalar().
Referenced by llvm::generateReadImageInst().
Register SPIRVGlobalRegistry::buildConstantInt | ( | uint64_t | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType = nullptr , |
||
bool | EmitIR = true |
||
) |
Definition at line 188 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assert(), assignTypeToVReg(), llvm::BitWidth, llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildInstr(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::ConstantInt::get(), llvm::Type::getInt32Ty(), llvm::MachineIRBuilder::getMF(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), llvm::Register::isValid(), and llvm::LLT::scalar().
Referenced by llvm::buildConstantIntReg(), llvm::buildNDRange(), llvm::buildSelectInst(), llvm::generateGroupInst(), and llvm::genWorkgroupQuery().
Register SPIRVGlobalRegistry::buildConstantSampler | ( | Register | Res, |
unsigned | AddrMode, | ||
unsigned | Param, | ||
unsigned | FilerMode, | ||
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType | ||
) |
Definition at line 429 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineIRBuilder::getMRI(), getOrCreateSPIRVType(), getOrCreateSPIRVTypeByName(), getSPIRVTypeID(), getTypeForSPIRVType(), and llvm::Register::isValid().
Referenced by llvm::generateReadImageInst(), and llvm::generateSampleImageInst().
|
inline |
Definition at line 99 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::buildDepsGraph().
Register SPIRVGlobalRegistry::buildGlobalVariable | ( | Register | Reg, |
SPIRVType * | BaseType, | ||
StringRef | Name, | ||
const GlobalValue * | GV, | ||
SPIRV::StorageClass::StorageClass | Storage, | ||
const MachineInstr * | Init, | ||
bool | IsConst, | ||
bool | HasLinkageTy, | ||
SPIRV::LinkageType::LinkageType | LinkageType, | ||
MachineIRBuilder & | MIRBuilder, | ||
bool | IsInstSelector | ||
) |
Definition at line 452 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), assert(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildCopy(), llvm::MachineIRBuilder::buildInstr(), llvm::buildOpDecorate(), llvm::buildOpName(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::GlobalValue::ExternalLinkage, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::GlobalObject::getAlign(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::Value::getName(), llvm::MachineInstr::getOperand(), llvm::GlobalValue::getParent(), llvm::MachineOperand::getReg(), llvm::getSpirvBuiltInIdByName(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), llvm::Value::hasName(), MRI, Name, llvm::LLT::pointer(), llvm::Align::value(), and llvm::MaybeAlign::valueOrOne().
Referenced by llvm::buildBuiltinVariableLoad().
|
inline |
Definition at line 87 of file SPIRVGlobalRegistry.h.
References llvm::CallingConv::C, and llvm::SPIRVGeneralDuplicatesTracker::find().
Referenced by addConstantsToTrack(), and llvm::SPIRVCallLowering::lowerCall().
|
inline |
Definition at line 95 of file SPIRVGlobalRegistry.h.
References F, and llvm::SPIRVGeneralDuplicatesTracker::find().
|
inline |
Definition at line 91 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::find().
Register SPIRVGlobalRegistry::getOrCreateConsIntArray | ( | uint64_t | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 320 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::ConstantArray::get(), llvm::ConstantInt::get(), llvm::ArrayType::getElementType(), llvm::ArrayType::getNumElements(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), getScalarOrVectorBitWidth(), getSPIRVTypeForVReg(), getTypeForSPIRVType(), I, llvm::Type::isArrayTy(), and TII.
Referenced by llvm::buildNDRange().
Register SPIRVGlobalRegistry::getOrCreateConsIntArray | ( | uint64_t | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType, | ||
bool | EmitIR = true |
||
) |
Definition at line 391 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::ConstantArray::get(), llvm::ConstantInt::get(), llvm::ArrayType::getElementType(), llvm::ArrayType::getNumElements(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), getScalarOrVectorBitWidth(), getSPIRVTypeForVReg(), getTypeForSPIRVType(), and llvm::Type::isArrayTy().
Register SPIRVGlobalRegistry::getOrCreateConsIntVector | ( | uint64_t | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 304 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::ConstantInt::get(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), getScalarOrVectorBitWidth(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), I, llvm::Type::isVectorTy(), and TII.
Referenced by llvm::buildSelectInst().
Register SPIRVGlobalRegistry::getOrCreateConsIntVector | ( | uint64_t | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType, | ||
bool | EmitIR = true |
||
) |
Definition at line 374 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::ConstantInt::get(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), getScalarOrVectorBitWidth(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), and llvm::Type::isVectorTy().
Register SPIRVGlobalRegistry::getOrCreateConstInt | ( | uint64_t | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 157 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::BuildMI(), llvm::constrainSelectedInstRegOperands(), CurMF, getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), I, and TII.
Referenced by getOrCreateSPIRVArrayType().
Register SPIRVGlobalRegistry::getOrCreateConstNullPtr | ( | MachineIRBuilder & | MIRBuilder, |
SPIRVType * | SpvType | ||
) |
Definition at line 409 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::ConstantPointerNull::get(), llvm::PointerType::getAddressSpace(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), getTypeForSPIRVType(), llvm::Register::isValid(), llvm::LLT::pointer(), and llvm::MachineRegisterInfo::setRegClass().
Referenced by llvm::buildEnqueueKernel().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeByOpcode | ( | const Type * | Ty, |
MachineIRBuilder & | MIRBuilder, | ||
unsigned | Opcode | ||
) |
Definition at line 910 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::MachineIRBuilder::getMF(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getUniqueVRegDef(), and llvm::Register::isValid().
Referenced by llvm::getNonParameterizedType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeDeviceEvent | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 885 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), and llvm::MachineIRBuilder::getMF().
Referenced by llvm::SPIRV::lowerBuiltinType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeFunctionWithArgs | ( | const Type * | Ty, |
SPIRVType * | RetType, | ||
const SmallVectorImpl< SPIRVType * > & | ArgTypes, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 625 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::MachineIRBuilder::getMF(), and getSPIRVTypeForVReg().
Referenced by llvm::SPIRVCallLowering::lowerFormalArguments().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeImage | ( | MachineIRBuilder & | MIRBuilder, |
SPIRVType * | SampledType, | ||
SPIRV::Dim::Dim | Dim, | ||
uint32_t | Depth, | ||
uint32_t | Arrayed, | ||
uint32_t | Multisampled, | ||
uint32_t | Sampled, | ||
SPIRV::ImageFormat::ImageFormat | ImageFormat, | ||
SPIRV::AccessQualifier::AccessQualifier | AccQual | ||
) |
Definition at line 838 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::Depth, llvm::MachineIRBuilder::getMF(), and getSPIRVTypeID().
Referenced by llvm::getImageType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypePipe | ( | MachineIRBuilder & | MIRBuilder, |
SPIRV::AccessQualifier::AccessQualifier | AccQual | ||
) |
Definition at line 872 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), and llvm::MachineIRBuilder::getMF().
Referenced by llvm::getPipeType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeSampledImage | ( | SPIRVType * | ImageType, |
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 895 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::MachineIRBuilder::getMF(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), and llvm::MachineRegisterInfo::getVRegDef().
Referenced by llvm::generateReadImageInst(), llvm::generateSampleImageInst(), and llvm::getSampledImageType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeSampler | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 863 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), and llvm::MachineIRBuilder::getMF().
Referenced by llvm::getSamplerType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVArrayType | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1042 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::ArrayType::get(), getOrCreateConstInt(), getOrCreateSPIRVIntegerType(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), getSPIRVTypeID(), getTypeForSPIRVType(), I, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVBoolType | ( | MachineInstr & | I, |
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1006 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), I, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVBoolType | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 999 of file SPIRVGlobalRegistry.cpp.
References llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by llvm::buildBoolRegister(), llvm::generateGroupInst(), and llvm::genWorkgroupQuery().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 984 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::BitWidth, llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), I, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 968 of file SPIRVGlobalRegistry.cpp.
References llvm::BitWidth, llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by assignIntTypeToVReg(), llvm::buildAtomicCompareExchangeInst(), llvm::buildConstantIntReg(), llvm::buildEnqueueKernel(), llvm::generateImageSizeQueryInst(), llvm::genWorkgroupQuery(), and getOrCreateSPIRVArrayType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | SPIRVType * | BaseType, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII, | ||
SPIRV::StorageClass::StorageClass | SClass = SPIRV::StorageClass::Function |
||
) |
Definition at line 1069 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::PointerType::get(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), getSPIRVTypeID(), getTypeForSPIRVType(), I, llvm::storageClassToAddressSpace(), and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | SPIRVType * | BaseType, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::StorageClass::StorageClass | SClass = SPIRV::StorageClass::Function |
||
) |
Definition at line 1060 of file SPIRVGlobalRegistry.cpp.
References llvm::PointerType::get(), getOrCreateSPIRVType(), getTypeForSPIRVType(), and llvm::storageClassToAddressSpace().
Referenced by llvm::buildBuiltinVariableLoad(), and llvm::buildEnqueueKernel().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVType | ( | const Type * | Type, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::AccessQualifier::AccessQualifier | AQ = SPIRV::AccessQualifier::ReadWrite , |
||
bool | EmitIR = true |
||
) |
Definition at line 759 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::MachineIRBuilder::getMF(), getSPIRVTypeForVReg(), and llvm::isSpecialOpaqueType().
Referenced by assignTypeToVReg(), buildConstantSampler(), llvm::buildNDRange(), llvm::getImageType(), getOrCreateSPIRVBoolType(), llvm::getOrCreateSPIRVDeviceEventPointer(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVTypeByName(), getOrCreateSPIRVVectorType(), llvm::insertAssignInstr(), llvm::SPIRVLegalizerInfo::legalizeCustom(), llvm::SPIRVCallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerFormalArguments(), and propagateSPIRVType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName | ( | StringRef | TypeStr, |
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 931 of file SPIRVGlobalRegistry.cpp.
References llvm::StructType::create(), llvm::StringRef::find(), llvm::StringRef::getAsInteger(), llvm::Function::getContext(), llvm::Type::getFloatTy(), llvm::MachineFunction::getFunction(), llvm::Type::getHalfTy(), llvm::Type::getInt32Ty(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVType(), getOrCreateSPIRVVectorType(), llvm::Type::getVoidTy(), llvm_unreachable, llvm::StringRef::startswith(), and llvm::StringRef::substr().
Referenced by buildConstantSampler(), and llvm::generateSampleImageInst().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1026 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::FixedVectorType::get(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), getSPIRVTypeID(), getTypeForSPIRVType(), I, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 1018 of file SPIRVGlobalRegistry.cpp.
References llvm::FixedVectorType::get(), getOrCreateSPIRVType(), and getTypeForSPIRVType().
Referenced by assignVectTypeToVReg(), llvm::buildBoolRegister(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), and getOrCreateSPIRVTypeByName().
Register SPIRVGlobalRegistry::getOrCreateUndef | ( | MachineInstr & | I, |
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1086 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), assignSPIRVTypeToVReg(), llvm::BuildMI(), llvm::constrainSelectedInstRegOperands(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::UndefValue::get(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), I, llvm::Register::isValid(), llvm::LLT::scalar(), llvm::MachineRegisterInfo::setRegClass(), and TII.
|
inline |
Definition at line 177 of file SPIRVGlobalRegistry.h.
Referenced by llvm::buildBuiltinVariableLoad(), llvm::buildEnqueueKernel(), llvm::buildNDRange(), and llvm::genWorkgroupQuery().
SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | Register | VReg | ) | const |
Definition at line 830 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicLoadInst(), llvm::buildAtomicStoreInst(), and llvm::buildMemSemanticsReg().
Definition at line 804 of file SPIRVGlobalRegistry.cpp.
References assert(), getSPIRVTypeForVReg(), and llvm_unreachable.
Referenced by buildConstantFP(), buildConstantInt(), llvm::buildSelectInst(), llvm::generateBuiltinVar(), llvm::generateReadImageInst(), getOrCreateConsIntArray(), getOrCreateConsIntVector(), and getOrCreateConstInt().
Definition at line 749 of file SPIRVGlobalRegistry.cpp.
References CurMF.
Referenced by llvm::buildAtomicCompareExchangeInst(), llvm::buildNDRange(), createNewIdReg(), llvm::generateDotOrFMulInst(), llvm::generateGroupInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::generateSampleImageInst(), llvm::genWorkgroupQuery(), getOrCreateConsIntArray(), getOrCreateOpTypeFunctionWithArgs(), getOrCreateSPIRVArrayType(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVType(), getOrCreateSPIRVVectorType(), getPointerStorageClass(), getScalarOrVectorBitWidth(), hasSPIRVTypeForVReg(), isScalarOfType(), isScalarOrVectorOfType(), isScalarOrVectorSigned(), llvm::SPIRVLegalizerInfo::legalizeCustom(), and propagateSPIRVType().
Definition at line 647 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::defs(), llvm::MachineInstr::getOpcode(), and llvm::MachineInstr::uses().
Referenced by llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicFlagInst(), llvm::buildAtomicLoadInst(), llvm::buildAtomicRMWInst(), buildConstantInt(), buildConstantSampler(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildNDRange(), llvm::generateAsyncCopy(), llvm::generateConvertInst(), llvm::generateDotOrFMulInst(), llvm::generateEnqueueInst(), llvm::generateExtInst(), llvm::generateGroupInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateLoadStoreInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::generateSampleImageInst(), llvm::generateSpecConstantInst(), llvm::generateVectorLoadStoreInst(), getOrCreateConstInt(), getOrCreateConstNullPtr(), getOrCreateOpTypeImage(), getOrCreateOpTypeSampledImage(), getOrCreateSPIRVArrayType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), llvm::insertAssignInstr(), llvm::SPIRV::lowerBuiltinType(), llvm::SPIRVCallLowering::lowerCall(), and llvm::SPIRVCallLowering::lowerFormalArguments().
Definition at line 133 of file SPIRVGlobalRegistry.h.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by llvm::buildBoolRegister(), buildConstantFP(), buildConstantInt(), buildConstantSampler(), buildGlobalVariable(), getOrCreateConsIntArray(), getOrCreateConsIntVector(), getOrCreateConstNullPtr(), getOrCreateSPIRVArrayType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVVectorType(), and getOrCreateUndef().
Definition at line 149 of file SPIRVGlobalRegistry.h.
References getSPIRVTypeForVReg().
Definition at line 782 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), and llvm::generateReadImageInst().
Definition at line 789 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), and getSPIRVTypeForVReg().
Referenced by llvm::generateConvertInst().
Definition at line 818 of file SPIRVGlobalRegistry.cpp.
References assert(), getSPIRVTypeForVReg(), and llvm_unreachable.
|
inline |
Definition at line 156 of file SPIRVGlobalRegistry.h.
References CurMF.
Referenced by llvm::SPIRVCallLowering::lowerCall(), and llvm::SPIRVCallLowering::lowerFormalArguments().
MachineFunction* llvm::SPIRVGlobalRegistry::CurMF |
Definition at line 69 of file SPIRVGlobalRegistry.h.
Referenced by assignIntTypeToVReg(), assignVectTypeToVReg(), buildConstantInt(), buildGlobalVariable(), getOrCreateConstInt(), getOrCreateConstNullPtr(), getOrCreateSPIRVArrayType(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), getSPIRVTypeForVReg(), and setCurrentFunc().