LLVM 22.0.0git
|
#include "Target/SPIRV/SPIRVGlobalRegistry.h"
Public Attributes | |
MachineFunction * | CurMF |
Definition at line 31 of file SPIRVGlobalRegistry.h.
SPIRVGlobalRegistry::SPIRVGlobalRegistry | ( | unsigned | PointerSize | ) |
Definition at line 89 of file SPIRVGlobalRegistry.cpp.
References CurMF.
|
inline |
Definition at line 138 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and buildAssignType().
Definition at line 199 of file SPIRVGlobalRegistry.h.
Definition at line 183 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and updateAssignType().
|
inline |
Definition at line 267 of file SPIRVGlobalRegistry.h.
Referenced by llvm::SPIRVTargetLowering::finalizeLowering().
|
inline |
Definition at line 118 of file SPIRVGlobalRegistry.h.
Referenced by addConstantsToTrack(), and buildGlobalVariable().
Definition at line 159 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 127 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 168 of file SPIRVGlobalRegistry.h.
References llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key.
Referenced by generateAssignInstrs().
SPIRVType * SPIRVGlobalRegistry::assignFloatTypeToVReg | ( | unsigned | BitWidth, |
Register | VReg, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII ) |
Definition at line 102 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::BitWidth, CurMF, getOrCreateSPIRVFloatType(), I, and TII.
Referenced by createConstFP().
SPIRVType * SPIRVGlobalRegistry::assignIntTypeToVReg | ( | unsigned | BitWidth, |
Register | VReg, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII ) |
Definition at line 92 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::BitWidth, CurMF, getOrCreateSPIRVIntegerType(), I, and TII.
Referenced by createConstInt().
void SPIRVGlobalRegistry::assignSPIRVTypeToVReg | ( | SPIRVType * | Type, |
Register | VReg, | ||
const MachineFunction & | MF ) |
Definition at line 128 of file SPIRVGlobalRegistry.cpp.
Referenced by assignFloatTypeToVReg(), assignIntTypeToVReg(), assignTypeToVReg(), assignVectTypeToVReg(), llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicRMWInst(), llvm::buildBoolRegister(), llvm::buildBuiltinVariableLoad(), buildConstantFP(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildNDRange(), convertPtrToInt(), llvm::createVirtualRegister(), llvm::generateGroupInst(), llvm::generateICarryBorrowInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), getOrCreateConstNullPtr(), getOrCreateUndef(), llvm::insertAssignInstr(), insertBitcasts(), insertInlineAsmProcess(), llvm::processInstr(), propagateSPIRVType(), and llvm::setRegClassType().
SPIRVType * SPIRVGlobalRegistry::assignTypeToVReg | ( | const Type * | Type, |
Register | VReg, | ||
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::AccessQualifier::AccessQualifier | AQ, | ||
bool | EmitIR ) |
Definition at line 119 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by buildConstantInt().
SPIRVType * SPIRVGlobalRegistry::assignVectTypeToVReg | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
Register | VReg, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII ) |
Definition at line 110 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), CurMF, getOrCreateSPIRVVectorType(), I, and TII.
Definition at line 2048 of file SPIRVGlobalRegistry.cpp.
References addAssignPtrTypeInstr(), addDeducedElementType(), B(), llvm::buildIntrWithMD(), findAssignPtrTypeInstr(), llvm::PoisonValue::get(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::getPointerAddressSpace(), llvm::Value::getType(), and updateAssignType().
Definition at line 2028 of file SPIRVGlobalRegistry.cpp.
References addAssignPtrTypeInstr(), allowEmitFakeUse(), B(), llvm::buildIntrWithMD(), llvm::MDNode::get(), llvm::MDString::get(), llvm::MDTuple::get(), llvm::MetadataAsValue::get(), llvm::ValueAsMetadata::getConstant(), llvm::Value::getContext(), llvm::Value::getName(), llvm::getNormalizedPoisonValue(), llvm::Value::getType(), and llvm::Type::isAggregateType().
Register SPIRVGlobalRegistry::buildConstantFP | ( | APFloat | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType = nullptr ) |
Definition at line 447 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), llvm::SPIRVIRMapping::find(), llvm::Type::getFloatTy(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVType(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::Register::isValid(), and llvm::LLT::scalar().
Referenced by llvm::generateReadImageInst().
Register SPIRVGlobalRegistry::buildConstantInt | ( | uint64_t | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType, | ||
bool | EmitIR, | ||
bool | ZeroAsNull = true ) |
Definition at line 401 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assert(), assignTypeToVReg(), llvm::BitWidth, llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildInstr(), llvm::cast(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::SPIRVIRMapping::find(), llvm::MachineIRBuilder::getMF(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), getTypeForSPIRVType(), llvm::Register::isValid(), MRI, and llvm::LLT::scalar().
Referenced by llvm::buildConstantIntReg32(), llvm::buildNDRange(), llvm::buildSelectInst(), llvm::generateGroupInst(), llvm::genWorkgroupQuery(), llvm::getInlineSpirvType(), and getOrCreateOpTypeCoopMatr().
Register SPIRVGlobalRegistry::buildConstantSampler | ( | Register | Res, |
unsigned | AddrMode, | ||
unsigned | Param, | ||
unsigned | FilerMode, | ||
MachineIRBuilder & | MIRBuilder ) |
Definition at line 689 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineIRBuilder::getMRI(), getOrCreateOpTypeSampler(), getSPIRVTypeID(), and llvm::Register::isValid().
Referenced by llvm::generateReadImageInst(), and llvm::generateSampleImageInst().
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 712 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), addGlobalObject(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildCopy(), llvm::MachineIRBuilder::buildInstr(), llvm::buildOpDecorate(), llvm::buildOpName(), llvm::buildOpSpirvDecorations(), llvm::cast(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::GlobalValue::ExternalLinkage, llvm::SPIRVIRMapping::find(), llvm::GlobalVariable::getAlign(), llvm::MachineFunction::getFunction(), llvm::GlobalObject::getMetadata(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::Value::getName(), llvm::MachineInstr::getOperand(), llvm::GlobalValue::getParent(), getPointerSize(), llvm::MachineOperand::getReg(), llvm::getSpirvBuiltInIdByName(), getSPIRVTypeForVReg(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), llvm::Value::hasName(), MRI, llvm::LLT::pointer(), llvm::Align::value(), and llvm::MaybeAlign::valueOrOne().
Referenced by llvm::buildBuiltinVariableLoad(), and getOrCreateGlobalVariableWithBinding().
void SPIRVGlobalRegistry::buildMemAliasingOpDecorate | ( | Register | Reg, |
MachineIRBuilder & | MIRBuilder, | ||
uint32_t | Dec, | ||
const MDNode * | GVarMD ) |
Definition at line 2009 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineInstr::getOperand(), getOrAddMemAliasingINTELInst(), and llvm::MachineOperand::getReg().
Referenced by insertSpirvDecorations().
SPIRVType * SPIRVGlobalRegistry::changePointerStorageClass | ( | SPIRVType * | PtrType, |
SPIRV::StorageClass::StorageClass | SC, | ||
MachineInstr & | I ) |
Definition at line 1816 of file SPIRVGlobalRegistry.cpp.
References assert(), getPointeeType(), getPointerStorageClass(), I, and storageClassRequiresExplictLayout().
Referenced by propagateSPIRVType().
Register SPIRVGlobalRegistry::createConstFP | ( | const ConstantFP * | CF, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull ) |
Definition at line 308 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assignFloatTypeToVReg(), llvm::APFloat::bitcastToAPInt(), llvm::BitWidth, llvm::MachineIRBuilder::buildInstr(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::ConstantFP::getValue(), llvm::ConstantFP::getValueAPF(), llvm::APInt::getZExtValue(), I, llvm::APFloat::isPosZero(), llvm::LLT::scalar(), and TII.
Referenced by getOrCreateConstFP().
Register SPIRVGlobalRegistry::createConstInt | ( | const ConstantInt * | CI, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull ) |
Definition at line 359 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assignIntTypeToVReg(), llvm::BitWidth, llvm::MachineIRBuilder::buildInstr(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::ConstantInt::getZExtValue(), I, llvm::ConstantInt::isZero(), llvm::LLT::scalar(), and TII.
Referenced by getOrCreateConstInt().
Definition at line 142 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and updateIfExistAssignPtrTypeInstr().
Definition at line 203 of file SPIRVGlobalRegistry.h.
Referenced by getDeducedGlobalValueType().
Definition at line 185 of file SPIRVGlobalRegistry.h.
Referenced by getAtomicElemTy(), getDeducedGlobalValueType(), getFunctionPointerElemType(), and updateIfExistDeducedElementType().
Definition at line 161 of file SPIRVGlobalRegistry.h.
Referenced by restoreMutatedType().
|
inline |
Definition at line 131 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 172 of file SPIRVGlobalRegistry.h.
References llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key.
|
inline |
Definition at line 116 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 208 of file SPIRVGlobalRegistry.h.
References findDeducedCompositeType(), findDeducedElementType(), and llvm::Global.
Referenced by propagateSPIRVType().
|
inline |
Definition at line 273 of file SPIRVGlobalRegistry.h.
References F.
Referenced by validateForwardCalls().
|
inline |
Definition at line 244 of file SPIRVGlobalRegistry.h.
References llvm::Function::end(), and MI.
Referenced by validateForwardCalls().
|
inline |
Definition at line 235 of file SPIRVGlobalRegistry.h.
References F, and llvm::MachineInstr::getParent().
Referenced by validateFunCall().
|
inline |
Definition at line 225 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 121 of file SPIRVGlobalRegistry.h.
SPIRVType * SPIRVGlobalRegistry::getImageType | ( | const TargetExtType * | ExtensionType, |
const SPIRV::AccessQualifier::AccessQualifier | Qualifier, | ||
MachineIRBuilder & | MIRBuilder ) |
Definition at line 1435 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::TargetExtType::getIntParameter(), llvm::TargetExtType::getNumIntParameters(), llvm::TargetExtType::getNumTypeParameters(), getOrCreateSPIRVType(), and llvm::TargetExtType::getTypeParameter().
Referenced by llvm::getSampledImageType(), and llvm::SPIRV::lowerBuiltinType().
Definition at line 1310 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::getImm(), and getSPIRVTypeForVReg().
Referenced by isBitcastCompatible().
MachineInstr * SPIRVGlobalRegistry::getOrAddMemAliasingINTELInst | ( | MachineIRBuilder & | MIRBuilder, |
const MDNode * | AliasingListMD ) |
Definition at line 1958 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), D(), llvm::dyn_cast(), llvm::MachineInstrBuilder::getInstr(), llvm::MachineIRBuilder::getMRI(), llvm::MDNode::getNumOperands(), llvm::MachineInstr::insert(), llvm::List, MRI, llvm::MDNode::operands(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by addMemoryOperands(), and buildMemAliasingOpDecorate().
Register SPIRVGlobalRegistry::getOrCreateConsIntVector | ( | uint64_t | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType, | ||
bool | EmitIR ) |
Definition at line 644 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), getScalarOrVectorBitWidth(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), and llvm::Type::isVectorTy().
Referenced by llvm::buildSelectInst().
Register SPIRVGlobalRegistry::getOrCreateConstFP | ( | APFloat | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull = true ) |
Definition at line 295 of file SPIRVGlobalRegistry.cpp.
References createConstFP(), CurMF, llvm::SPIRVIRMapping::findMI(), I, MI, and TII.
Register SPIRVGlobalRegistry::getOrCreateConstInt | ( | uint64_t | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull = true ) |
Definition at line 346 of file SPIRVGlobalRegistry.cpp.
References llvm::cast(), createConstInt(), CurMF, llvm::SPIRVIRMapping::findMI(), getTypeForSPIRVType(), I, MI, and TII.
Register SPIRVGlobalRegistry::getOrCreateConstIntArray | ( | uint64_t | Val, |
size_t | Num, | ||
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII ) |
Definition at line 580 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::PoisonValue::get(), llvm::ConstantStruct::getAnon(), 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::getOrCreateConstNullPtr | ( | MachineIRBuilder & | MIRBuilder, |
SPIRVType * | SpvType ) |
Definition at line 661 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), CurMF, llvm::dyn_cast(), llvm::SPIRVIRMapping::find(), llvm::ConstantTargetNone::get(), getPointeeType(), getSPIRVTypeID(), llvm::getTypedPointerWrapper(), getTypeForSPIRVType(), llvm::Register::isValid(), llvm::LLT::pointer(), and typeToAddressSpace().
Referenced by llvm::buildEnqueueKernel().
Register SPIRVGlobalRegistry::getOrCreateConstVector | ( | APFloat | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull = true ) |
Definition at line 561 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), getScalarOrVectorBitWidth(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), I, llvm::Type::isFloatingPointTy(), llvm::Type::isVectorTy(), and TII.
Register SPIRVGlobalRegistry::getOrCreateConstVector | ( | uint64_t | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull = true ) |
Definition at line 542 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), getScalarOrVectorBitWidth(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), I, llvm::Type::isIntegerTy(), llvm::Type::isVectorTy(), and TII.
Register SPIRVGlobalRegistry::getOrCreateGlobalVariableWithBinding | ( | const SPIRVType * | VarType, |
uint32_t | Set, | ||
uint32_t | Binding, | ||
StringRef | Name, | ||
MachineIRBuilder & | MIRBuilder ) |
Definition at line 817 of file SPIRVGlobalRegistry.cpp.
References buildGlobalVariable(), llvm::buildOpDecorate(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineIRBuilder::getMRI(), and getPointerStorageClass().
SPIRVType * SPIRVGlobalRegistry::getOrCreateLayoutType | ( | MachineIRBuilder & | MIRBuilder, |
const TargetExtType * | T, | ||
bool | EmitIr = false ) |
Definition at line 1408 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), assert(), llvm::buildOpMemberDecorate(), llvm::cast(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), llvm::SPIRV::handle(), I, llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, MI, and T.
Referenced by llvm::getLayoutType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeByOpcode | ( | const Type * | Ty, |
MachineIRBuilder & | MIRBuilder, | ||
unsigned | Opcode ) |
Definition at line 1591 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), and MI.
Referenced by llvm::getNonParameterizedType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeCoopMatr | ( | MachineIRBuilder & | MIRBuilder, |
const TargetExtType * | ExtensionType, | ||
const SPIRVType * | ElemType, | ||
uint32_t | Scope, | ||
uint32_t | Rows, | ||
uint32_t | Columns, | ||
uint32_t | Use, | ||
bool | EmitIR ) |
Definition at line 1562 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), buildConstantInt(), llvm::MachineIRBuilder::buildInstr(), llvm::cast(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::Type::getIntegerBitWidth(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVIntegerType(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), llvm::Type::isIntegerTy(), and MI.
Referenced by llvm::getCoopMatrType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeDeviceEvent | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 1530 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::SPIRV::irhandle_event(), and MI.
Referenced by llvm::SPIRV::lowerBuiltinType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeFunctionWithArgs | ( | const Type * | Ty, |
SPIRVType * | RetType, | ||
const SmallVectorImpl< SPIRVType * > & | ArgTypes, | ||
MachineIRBuilder & | MIRBuilder ) |
Definition at line 985 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), and MI.
Referenced by insertInlineAsmProcess().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypePipe | ( | MachineIRBuilder & | MIRBuilder, |
SPIRV::AccessQualifier::AccessQualifier | AccQual ) |
Definition at line 1514 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::SPIRV::irhandle_pipe(), and MI.
Referenced by llvm::getPipeType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeSampledImage | ( | SPIRVType * | ImageType, |
MachineIRBuilder & | MIRBuilder ) |
Definition at line 1544 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), llvm::MachineRegisterInfo::getVRegDef(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::SPIRV::irhandle_sampled_image(), and MI.
Referenced by llvm::generateReadImageInst(), llvm::generateSampleImageInst(), and llvm::getSampledImageType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeSampler | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 1500 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::SPIRV::irhandle_sampler(), and MI.
Referenced by buildConstantSampler(), and llvm::getSamplerType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVBoolType | ( | MachineInstr & | I, |
const SPIRVInstrInfo & | TII ) |
Definition at line 1751 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVIRMapping::findMI(), llvm::IntegerType::get(), llvm::MachineIRBuilder::getDL(), llvm::MachineBasicBlock::getFirstNonPHI(), llvm::MachineIRBuilder::getInsertPt(), llvm::MachineIRBuilder::getMBB(), I, MI, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVBoolType | ( | MachineIRBuilder & | MIRBuilder, |
bool | EmitIR ) |
Definition at line 1743 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::getOrCreateSPIRVFloatType | ( | unsigned | BitWidth, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII ) |
Definition at line 1722 of file SPIRVGlobalRegistry.cpp.
References llvm::BitWidth, CurMF, llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::Type::getHalfTy(), getOrCreateSPIRVType(), I, llvm_unreachable, and TII.
Referenced by assignFloatTypeToVReg().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII ) |
Definition at line 1710 of file SPIRVGlobalRegistry.cpp.
References llvm::BitWidth, CurMF, llvm::IntegerType::get(), getOrCreateSPIRVType(), I, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
MachineIRBuilder & | MIRBuilder ) |
Definition at line 1674 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::buildConstantIntReg32(), llvm::buildEnqueueKernel(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateImageSizeQueryInst(), llvm::genWorkgroupQuery(), getOrCreateOpTypeCoopMatr(), and propagateSPIRVType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
MachineInstr & | I, | ||
SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1798 of file SPIRVGlobalRegistry.cpp.
References getOrCreateSPIRVPointerType(), and I.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1805 of file SPIRVGlobalRegistry.cpp.
References assert(), getOrCreateSPIRVType(), and storageClassRequiresExplictLayout().
Referenced by llvm::buildBuiltinVariableLoad(), llvm::buildEnqueueKernel(), createNewPtrType(), generateAssignInstrs(), getArgSPIRVType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVTypeByName(), insertBitcasts(), validateLifetimeStart(), and validatePtrUnwrapStructField().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | SPIRVType * | BaseType, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1828 of file SPIRVGlobalRegistry.cpp.
References assert(), getOrCreateSPIRVPointerType(), getPointeeType(), getTypeForSPIRVType(), and storageClassRequiresExplictLayout().
|
inline |
Definition at line 302 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVType(), and I.
Referenced by addConstantsToTrack(), assignTypeToVReg(), buildConstantFP(), llvm::buildNDRange(), createNewPtrType(), llvm::createVirtualRegister(), getArgSPIRVType(), llvm::getCoopMatrType(), getImageType(), llvm::getInlineSpirvType(), getOrCreateSPIRVBoolType(), llvm::getOrCreateSPIRVDeviceEventPointer(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVType(), getOrCreateSPIRVType(), getOrCreateSPIRVTypeByName(), getOrCreateSPIRVVectorType(), getOrCreateVulkanBufferType(), llvm::insertAssignInstr(), insertInlineAsmProcess(), propagateSPIRVType(), and llvm::setRegClassType().
|
inline |
Definition at line 309 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVType | ( | unsigned | BitWidth, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII, | ||
unsigned | SPIRVOPcode, | ||
Type * | LLVMTy ) |
Definition at line 1689 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::BitWidth, llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getDL(), llvm::MachineBasicBlock::getFirstNonPHI(), llvm::MachineIRBuilder::getInsertPt(), llvm::MachineIRBuilder::getMBB(), I, MI, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName | ( | StringRef | TypeStr, |
MachineIRBuilder & | MIRBuilder, | ||
bool | EmitIR, | ||
SPIRV::StorageClass::StorageClass | SC = SPIRV::StorageClass::Function, | ||
SPIRV::AccessQualifier::AccessQualifier | AQ = SPIRV::AccessQualifier::ReadWrite ) |
Definition at line 1628 of file SPIRVGlobalRegistry.cpp.
References llvm::StringRef::consume_back(), llvm::StringRef::consume_front(), llvm::StringRef::find(), llvm::StringRef::getAsInteger(), llvm::Function::getContext(), llvm::MachineIRBuilder::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVType(), getOrCreateSPIRVVectorType(), llvm::hasBuiltinTypePrefix(), llvm::parseBasicTypeName(), llvm::SPIRV::parseBuiltinTypeNameToTargetExtType(), llvm::StringRef::str(), and llvm::StringRef::substr().
Referenced by llvm::generateAsyncCopy(), and llvm::generateSampleImageInst().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII ) |
Definition at line 1777 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVIRMapping::findMI(), llvm::FixedVectorType::get(), llvm::MachineIRBuilder::getDL(), llvm::MachineIRBuilder::getInsertPt(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineIRBuilder::getMBB(), llvm::MachineInstr::getParent(), getSPIRVTypeID(), getTypeForSPIRVType(), I, MI, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
MachineIRBuilder & | MIRBuilder, | ||
bool | EmitIR ) |
Definition at line 1768 of file SPIRVGlobalRegistry.cpp.
References llvm::FixedVectorType::get(), getOrCreateSPIRVType(), and getTypeForSPIRVType().
Referenced by assignVectTypeToVReg(), llvm::buildBoolRegister(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateGroupInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), getOrCreateSPIRVTypeByName(), and propagateSPIRVType().
Register SPIRVGlobalRegistry::getOrCreateUndef | ( | MachineInstr & | I, |
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII ) |
Definition at line 1862 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::BuildMI(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::SPIRVIRMapping::find(), llvm::UndefValue::get(), llvm::MachineIRBuilder::getDL(), llvm::MachineIRBuilder::getInsertPt(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineIRBuilder::getMBB(), llvm::MachineInstr::getParent(), getSPIRVTypeID(), getTypeForSPIRVType(), I, llvm::Register::isValid(), llvm::LLT::scalar(), and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateUnknownType | ( | const Type * | Ty, |
MachineIRBuilder & | MIRBuilder, | ||
unsigned | Opcode, | ||
const ArrayRef< MCOperand > | Operands ) |
Definition at line 1603 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), MI, and Operands.
Referenced by llvm::getInlineSpirvType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateVulkanBufferType | ( | MachineIRBuilder & | MIRBuilder, |
Type * | ElemType, | ||
SPIRV::StorageClass::StorageClass | SC, | ||
bool | IsWritable, | ||
bool | EmitIr = false ) |
Definition at line 1380 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::buildOpDecorate(), llvm::buildOpMemberDecorate(), llvm::StructType::create(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVType(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::SPIRV::irhandle_vkbuffer(), MI, storageClassRequiresExplictLayout(), and T.
Referenced by llvm::getVulkanBufferType().
Definition at line 1336 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and getSPIRVTypeForVReg().
Referenced by changePointerStorageClass(), llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility(), llvm::generateICarryBorrowInst(), getOrCreateConstNullPtr(), getOrCreateSPIRVPointerType(), getPointeeTypeOp(), and validateLifetimeStart().
Definition at line 1342 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), getPointeeType(), and getSPIRVTypeForVReg().
|
inline |
Definition at line 414 of file SPIRVGlobalRegistry.h.
Referenced by llvm::buildBuiltinVariableLoad(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildNDRange(), llvm::genWorkgroupQuery(), and getRegType().
SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | const SPIRVType * | Type | ) | const |
Definition at line 1375 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | Register | VReg | ) | const |
Definition at line 1367 of file SPIRVGlobalRegistry.cpp.
References assert(), getPointerStorageClass(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicLoadInst(), llvm::buildAtomicStoreInst(), llvm::buildMemSemanticsReg(), changePointerStorageClass(), llvm::generateCastToPtrInst(), getOrCreateGlobalVariableWithBinding(), getPointerStorageClass(), and propagateSPIRVType().
const TargetRegisterClass * SPIRVGlobalRegistry::getRegClass | ( | SPIRVType * | SpvType | ) | const |
Definition at line 1895 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicRMWInst(), llvm::buildBoolRegister(), buildOpBitcast(), convertPtrToInt(), llvm::createVirtualRegister(), llvm::generateReadImageInst(), llvm::insertAssignInstr(), llvm::processInstr(), propagateSPIRVType(), llvm::setRegClassIfNull(), and llvm::setRegClassType().
Definition at line 1921 of file SPIRVGlobalRegistry.cpp.
References llvm::LLT::fixed_vector(), getAS(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getPointerSize(), llvm::MachineOperand::getReg(), getScalarOrVectorBitWidth(), getSPIRVTypeForVReg(), llvm::LLT::pointer(), and llvm::LLT::scalar().
Referenced by llvm::createVirtualRegister(), llvm::generateReadImageInst(), llvm::insertAssignInstr(), llvm::processInstr(), and llvm::setRegClassType().
SPIRVType * SPIRVGlobalRegistry::getResultType | ( | Register | VReg, |
MachineFunction * | MF = nullptr ) |
Definition at line 1179 of file SPIRVGlobalRegistry.cpp.
References CurMF, llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), and llvm::getVRegDef().
Referenced by llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility().
Definition at line 1296 of file SPIRVGlobalRegistry.cpp.
References assert(), getSPIRVTypeForVReg(), and llvm_unreachable.
Referenced by buildConstantFP(), buildConstantInt(), llvm::buildSelectInst(), createConstFP(), createConstInt(), llvm::generateBuiltinVar(), llvm::generateWaveInst(), getOrCreateConsIntVector(), getOrCreateConstIntArray(), getOrCreateConstVector(), getOrCreateConstVector(), getRegType(), and propagateSPIRVType().
Definition at line 1264 of file SPIRVGlobalRegistry.cpp.
References getScalarOrVectorComponentCount(), and getSPIRVTypeForVReg().
Referenced by llvm::generateConvertInst(), getScalarOrVectorComponentCount(), and propagateSPIRVType().
Definition at line 1269 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
Definition at line 1278 of file SPIRVGlobalRegistry.cpp.
References getScalarOrVectorComponentType(), and getSPIRVTypeForVReg().
Referenced by getScalarOrVectorComponentType().
Definition at line 1283 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), getSPIRVTypeForVReg(), and isScalarOrVectorOfType().
SPIRVType * SPIRVGlobalRegistry::getSPIRVTypeForVReg | ( | Register | VReg, |
const MachineFunction * | MF = nullptr ) const |
Definition at line 1168 of file SPIRVGlobalRegistry.cpp.
References CurMF.
Referenced by llvm::buildAtomicCompareExchangeInst(), buildGlobalVariable(), llvm::buildNDRange(), buildOpBitcast(), llvm::SPIRVTargetLowering::finalizeLowering(), generateAssignInstrs(), llvm::generateCoopMatrInst(), llvm::generateDotOrFMulInst(), llvm::generateGroupInst(), llvm::generateICarryBorrowInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateIntelSubgroupsInst(), llvm::generateReadImageInst(), llvm::generateSampleImageInst(), llvm::genWorkgroupQuery(), getNumScalarOrVectorTotalBitWidth(), getOrCreateConstIntArray(), getPointeeType(), getPointeeTypeOp(), getPointerStorageClass(), getRegClass(), getRegType(), getResultType(), getScalarOrVectorBitWidth(), getScalarOrVectorComponentCount(), getScalarOrVectorComponentType(), getScalarOrVectorComponentType(), hasSPIRVTypeForVReg(), insertBitcasts(), isScalarOfType(), isScalarOrVectorOfType(), llvm::SPIRV::lowerBuiltin(), llvm::processInstr(), processNewInstrs(), propagateSPIRVType(), retrieveScalarOrVectorIntType(), llvm::setRegClassIfNull(), typesLogicallyMatch(), validateAccessChain(), validateFunCallMachineDef(), validateGroupWaitEventsPtr(), validateLifetimeStart(), validatePtrTypes(), and validatePtrUnwrapStructField().
Definition at line 1011 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::iterator_range< IteratorT >::begin(), llvm::MachineInstr::defs(), llvm::MachineInstr::getOpcode(), and llvm::MachineInstr::uses().
Referenced by addConstantsToTrack(), llvm::build2DBlockIOINTELInst(), llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicFlagInst(), llvm::buildAtomicFloatingRMWInst(), llvm::buildAtomicLoadInst(), llvm::buildAtomicRMWInst(), llvm::buildBindlessImageINTELInst(), buildConstantFP(), buildConstantInt(), buildConstantSampler(), llvm::buildEnqueueKernel(), llvm::buildExtendedBitOpsInst(), buildGlobalVariable(), llvm::buildNDRange(), buildOpBitcast(), llvm::buildTernaryBitwiseFunctionINTELInst(), createConstFP(), createConstInt(), doInsertBitcast(), llvm::generateAsyncCopy(), llvm::generateAtomicInst(), llvm::generateCastToPtrInst(), llvm::generateConstructInst(), llvm::generateConvertInst(), llvm::generateCoopMatrInst(), llvm::generateDotOrFMulInst(), llvm::generateEnqueueInst(), llvm::generateExtInst(), llvm::generateGroupInst(), llvm::generateGroupUniformInst(), llvm::generateICarryBorrowInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateIntelSubgroupsInst(), llvm::generateKernelClockInst(), llvm::generateLoadStoreInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::generateSampleImageInst(), llvm::generateSpecConstantInst(), llvm::generateVectorLoadStoreInst(), llvm::getInlineSpirvType(), getOrCreateConstNullPtr(), getOrCreateOpTypeCoopMatr(), getOrCreateOpTypeSampledImage(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), llvm::insertAssignInstr(), insertInlineAsmProcess(), llvm::SPIRVTargetLowering::insertLogicalCopyOnResult(), and llvm::SPIRV::lowerBuiltinType().
Definition at line 316 of file SPIRVGlobalRegistry.h.
References assert().
Referenced by llvm::buildBoolRegister(), buildConstantInt(), buildGlobalVariable(), fixFunctionTypeIfPtrArgs(), generateAssignInstrs(), getOrCreateConsIntVector(), getOrCreateConstInt(), getOrCreateConstIntArray(), getOrCreateConstNullPtr(), getOrCreateConstVector(), getOrCreateConstVector(), getOrCreateOpTypeCoopMatr(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVVectorType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), validateFunCallMachineDef(), and validatePtrTypes().
|
inline |
Definition at line 264 of file SPIRVGlobalRegistry.h.
Definition at line 348 of file SPIRVGlobalRegistry.h.
References getSPIRVTypeForVReg().
void SPIRVGlobalRegistry::invalidateMachineInstr | ( | MachineInstr * | MI | ) |
Definition at line 225 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::erase(), and MI.
Referenced by addConstantsToTrack(), cleanupHelperInstructions(), foldConstantsIntoIntrinsics(), generateAssignInstrs(), insertBitcasts(), insertInlineAsmProcess(), insertSpirvDecorations(), processBlockAddr(), and selectOpBitcasts().
Definition at line 363 of file SPIRVGlobalRegistry.h.
bool SPIRVGlobalRegistry::isBitcastCompatible | ( | const SPIRVType * | Type1, |
const SPIRVType * | Type2 ) const |
Definition at line 1347 of file SPIRVGlobalRegistry.cpp.
References getNumScalarOrVectorTotalBitWidth(), llvm::MachineInstr::getOpcode(), and retrieveScalarOrVectorIntType().
Referenced by buildOpBitcast(), and validatePtrTypes().
Definition at line 1250 of file SPIRVGlobalRegistry.cpp.
Definition at line 1229 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), and llvm::generateReadImageInst().
Definition at line 1236 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), and getSPIRVTypeForVReg().
Referenced by llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateConvertInst(), llvm::generateDotOrFMulInst(), and getScalarOrVectorComponentType().
Definition at line 1331 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), and retrieveScalarOrVectorIntType().
|
inline |
Definition at line 258 of file SPIRVGlobalRegistry.h.
References F, and llvm::MachineOperand::getParent().
|
inline |
Definition at line 253 of file SPIRVGlobalRegistry.h.
References F.
Definition at line 2021 of file SPIRVGlobalRegistry.cpp.
References llvm::Value::replaceAllUsesWith(), updateIfExistAssignPtrTypeInstr(), and updateIfExistDeducedElementType().
const SPIRVType * SPIRVGlobalRegistry::retrieveScalarOrVectorIntType | ( | const SPIRVType * | Type | ) | const |
Definition at line 1324 of file SPIRVGlobalRegistry.cpp.
References getSPIRVTypeForVReg().
Referenced by isBitcastCompatible(), and isScalarOrVectorSigned().
|
inline |
Definition at line 115 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 356 of file SPIRVGlobalRegistry.h.
References CurMF.
Referenced by llvm::SPIRVTargetLowering::finalizeLowering(), and validateFunCallMachineDef().
Definition at line 2067 of file SPIRVGlobalRegistry.cpp.
References addDeducedElementType(), llvm::buildMD(), llvm::cast(), getIntrinsicID(), llvm::Value::getType(), and llvm::CallBase::setArgOperand().
Referenced by buildAssignPtr().
|
inline |
Definition at line 147 of file SPIRVGlobalRegistry.h.
References findAssignPtrTypeInstr().
Referenced by replaceAllUsesWith().
|
inline |
Definition at line 190 of file SPIRVGlobalRegistry.h.
References findDeducedElementType().
Referenced by replaceAllUsesWith().
MachineFunction* llvm::SPIRVGlobalRegistry::CurMF |
Definition at line 113 of file SPIRVGlobalRegistry.h.
Referenced by assignFloatTypeToVReg(), assignIntTypeToVReg(), assignVectTypeToVReg(), buildConstantInt(), buildGlobalVariable(), createConstFP(), createConstInt(), getOrCreateConstFP(), getOrCreateConstInt(), getOrCreateConstNullPtr(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), getResultType(), getSPIRVTypeForVReg(), processNewInstrs(), setCurrentFunc(), and SPIRVGlobalRegistry().