|
LLVM 23.0.0git
|
#include "Target/SPIRV/SPIRVGlobalRegistry.h"
Public Attributes | |
| MachineFunction * | CurMF |
Definition at line 32 of file SPIRVGlobalRegistry.h.
| SPIRVGlobalRegistry::SPIRVGlobalRegistry | ( | unsigned | PointerSize | ) |
Definition at line 91 of file SPIRVGlobalRegistry.cpp.
References CurMF.
|
inline |
Definition at line 142 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and buildAssignType().
Definition at line 203 of file SPIRVGlobalRegistry.h.
Definition at line 187 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and updateAssignType().
|
inline |
Definition at line 273 of file SPIRVGlobalRegistry.h.
Referenced by llvm::SPIRVTargetLowering::finalizeLowering().
|
inline |
Definition at line 122 of file SPIRVGlobalRegistry.h.
Referenced by addConstantsToTrack(), and buildGlobalVariable().
Definition at line 163 of file SPIRVGlobalRegistry.h.
|
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.
Referenced by generateAssignInstrs().
| SPIRVTypeInst SPIRVGlobalRegistry::assignFloatTypeToVReg | ( | unsigned | BitWidth, |
| Register | VReg, | ||
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 104 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::BitWidth, CurMF, getOrCreateSPIRVFloatType(), I, and TII.
| SPIRVTypeInst SPIRVGlobalRegistry::assignIntTypeToVReg | ( | unsigned | BitWidth, |
| Register | VReg, | ||
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 95 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::BitWidth, CurMF, getOrCreateSPIRVIntegerType(), I, and TII.
Referenced by createConstInt().
| void SPIRVGlobalRegistry::assignSPIRVTypeToVReg | ( | SPIRVTypeInst | Type, |
| Register | VReg, | ||
| const MachineFunction & | MF ) |
Definition at line 130 of file SPIRVGlobalRegistry.cpp.
Referenced by assignFloatTypeToVReg(), assignIntTypeToVReg(), assignTypeToVReg(), assignVectTypeToVReg(), llvm::buildAPFixedPointInst(), llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicRMWInst(), llvm::buildBoolRegister(), buildConstantFP(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildNDRange(), convertPtrToInt(), createConstFP(), createStackTemporaryForVector(), llvm::createVirtualRegister(), deduceAndAssignSpirvType(), generateAssignType(), llvm::generateGroupInst(), llvm::generateICarryBorrowInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), getOrCreateConstNullPtr(), getOrCreateUndef(), insertBitcasts(), insertInlineAsmProcess(), legalizeSpvConstComposite(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), llvm::processInstr(), propagateSPIRVType(), llvm::setRegClassType(), and llvm::updateRegType().
| SPIRVTypeInst SPIRVGlobalRegistry::assignTypeToVReg | ( | const Type * | Type, |
| Register | VReg, | ||
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::AccessQualifier::AccessQualifier | AQ, | ||
| bool | EmitIR ) |
Definition at line 121 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by buildConstantInt().
| SPIRVTypeInst SPIRVGlobalRegistry::assignVectTypeToVReg | ( | SPIRVTypeInst | BaseType, |
| unsigned | NumElements, | ||
| Register | VReg, | ||
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 112 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), CurMF, getOrCreateSPIRVVectorType(), I, and TII.
Definition at line 2205 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().
Referenced by replacePushConstantAccesses().
Definition at line 2185 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, | ||
| SPIRVTypeInst | SpvType = nullptr ) |
Definition at line 501 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, | ||
| SPIRVTypeInst | SpvType, | ||
| bool | EmitIR, | ||
| bool | ZeroAsNull = true ) |
Definition at line 452 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 757 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, |
| SPIRVTypeInst | BaseType, | ||
| StringRef | Name, | ||
| const GlobalValue * | GV, | ||
| SPIRV::StorageClass::StorageClass | Storage, | ||
| const MachineInstr * | Init, | ||
| bool | IsConst, | ||
| const std::optional< SPIRV::LinkageType::LinkageType > & | LinkageType, | ||
| MachineIRBuilder & | MIRBuilder, | ||
| bool | IsInstSelector ) |
Definition at line 780 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 getOrCreateGlobalVariableWithBinding().
| void SPIRVGlobalRegistry::buildMemAliasingOpDecorate | ( | Register | Reg, |
| MachineIRBuilder & | MIRBuilder, | ||
| uint32_t | Dec, | ||
| const MDNode * | GVarMD ) |
Definition at line 2166 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().
| SPIRVTypeInst SPIRVGlobalRegistry::changePointerStorageClass | ( | SPIRVTypeInst | PtrType, |
| SPIRV::StorageClass::StorageClass | SC, | ||
| MachineInstr & | I ) |
Definition at line 1969 of file SPIRVGlobalRegistry.cpp.
References assert(), getPointeeType(), getPointerStorageClass(), I, and storageClassRequiresExplictLayout().
Referenced by propagateSPIRVType().
| Register SPIRVGlobalRegistry::createConstFP | ( | const ConstantFP * | CF, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull ) |
Definition at line 347 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), 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, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull ) |
Definition at line 409 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::getValue(), I, llvm::ConstantInt::isZero(), llvm::LLT::scalar(), and TII.
Referenced by getOrCreateConstInt().
Definition at line 146 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and updateIfExistAssignPtrTypeInstr().
Definition at line 207 of file SPIRVGlobalRegistry.h.
Referenced by getDeducedGlobalValueType().
Definition at line 189 of file SPIRVGlobalRegistry.h.
Referenced by getAtomicElemTy(), getDeducedGlobalValueType(), getFunctionPointerElemType(), and updateIfExistDeducedElementType().
Definition at line 165 of file SPIRVGlobalRegistry.h.
Referenced by restoreMutatedType().
|
inline |
Definition at line 135 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 176 of file SPIRVGlobalRegistry.h.
References llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key.
|
inline |
Definition at line 120 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 212 of file SPIRVGlobalRegistry.h.
References llvm::dyn_cast(), findDeducedCompositeType(), findDeducedElementType(), llvm::SPIRV::getOriginalFunctionType(), and llvm::Global.
Referenced by propagateSPIRVType().
|
inline |
Definition at line 279 of file SPIRVGlobalRegistry.h.
References F.
Referenced by validateForwardCalls().
|
inline |
Definition at line 250 of file SPIRVGlobalRegistry.h.
References llvm::Function::end(), and MI.
Referenced by validateForwardCalls().
|
inline |
Definition at line 241 of file SPIRVGlobalRegistry.h.
References F, and llvm::MachineInstr::getParent().
Referenced by validateFunCall().
|
inline |
Definition at line 231 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 125 of file SPIRVGlobalRegistry.h.
| SPIRVTypeInst SPIRVGlobalRegistry::getImageType | ( | const TargetExtType * | ExtensionType, |
| const SPIRV::AccessQualifier::AccessQualifier | Qualifier, | ||
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 1581 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().
| unsigned SPIRVGlobalRegistry::getNumScalarOrVectorTotalBitWidth | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1422 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::getImm(), and getSPIRVTypeForVReg().
Referenced by isBitcastCompatible().
| MachineInstr * SPIRVGlobalRegistry::getOrAddMemAliasingINTELInst | ( | MachineIRBuilder & | MIRBuilder, |
| const MDNode * | AliasingListMD ) |
Definition at line 2115 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, | ||
| SPIRVTypeInst | SpvType, | ||
| bool | EmitIR ) |
Definition at line 712 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, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 334 of file SPIRVGlobalRegistry.cpp.
References createConstFP(), CurMF, llvm::SPIRVIRMapping::findMI(), I, MI, and TII.
| Register SPIRVGlobalRegistry::getOrCreateConstInt | ( | const APInt & | Val, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 395 of file SPIRVGlobalRegistry.cpp.
References llvm::cast(), createConstInt(), CurMF, llvm::SPIRVIRMapping::findMI(), getTypeForSPIRVType(), I, MI, and TII.
| Register SPIRVGlobalRegistry::getOrCreateConstInt | ( | uint64_t | Val, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 387 of file SPIRVGlobalRegistry.cpp.
References getOrCreateConstInt(), getScalarOrVectorBitWidth(), I, and TII.
Referenced by getOrCreateConstInt().
| Register SPIRVGlobalRegistry::getOrCreateConstIntArray | ( | uint64_t | Val, |
| size_t | Num, | ||
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 646 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::PoisonValue::get(), llvm::ConstantStruct::getAnon(), llvm::Type::getContext(), llvm::ArrayType::getElementType(), llvm::Type::getInt64Ty(), 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, |
| SPIRVTypeInst | SpvType ) |
Definition at line 729 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, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 627 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 | ( | const APInt & | Val, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 606 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::getOrCreateConstVector | ( | uint64_t | Val, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 597 of file SPIRVGlobalRegistry.cpp.
References getOrCreateConstVector(), getScalarOrVectorBitWidth(), I, and TII.
Referenced by getOrCreateConstVector().
| Register SPIRVGlobalRegistry::getOrCreateGlobalVariableWithBinding | ( | SPIRVTypeInst | VarType, |
| uint32_t | Set, | ||
| uint32_t | Binding, | ||
| StringRef | Name, | ||
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 885 of file SPIRVGlobalRegistry.cpp.
References buildGlobalVariable(), llvm::buildOpDecorate(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineIRBuilder::getMRI(), and getPointerStorageClass().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateLayoutType | ( | MachineIRBuilder & | MIRBuilder, |
| const TargetExtType * | T, | ||
| bool | EmitIr = false ) |
Definition at line 1554 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateOpTypeByOpcode | ( | const Type * | Ty, |
| MachineIRBuilder & | MIRBuilder, | ||
| unsigned | Opcode ) |
Definition at line 1739 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateOpTypeCoopMatr | ( | MachineIRBuilder & | MIRBuilder, |
| const TargetExtType * | ExtensionType, | ||
| SPIRVTypeInst | ElemType, | ||
| uint32_t | Scope, | ||
| uint32_t | Rows, | ||
| uint32_t | Columns, | ||
| uint32_t | Use, | ||
| bool | EmitIR ) |
Definition at line 1709 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateOpTypeDeviceEvent | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 1677 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateOpTypeFunctionWithArgs | ( | const Type * | Ty, |
| SPIRVTypeInst | RetType, | ||
| const SmallVectorImpl< SPIRVTypeInst > & | ArgTypes, | ||
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 1095 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::cast(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), and MI.
Referenced by insertInlineAsmProcess().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateOpTypePipe | ( | MachineIRBuilder & | MIRBuilder, |
| SPIRV::AccessQualifier::AccessQualifier | AccQual ) |
Definition at line 1661 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateOpTypeSampledImage | ( | SPIRVTypeInst | ImageType, |
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 1691 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateOpTypeSampler | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 1647 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreatePaddingType | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 1522 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getContext(), llvm::Type::getInt8Ty(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVIntegerType(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::SPIRV::irhandle_padding(), MI, and T.
Referenced by llvm::SPIRV::lowerBuiltinType().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVBoolType | ( | MachineInstr & | I, |
| const SPIRVInstrInfo & | TII ) |
Definition at line 1903 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.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVBoolType | ( | MachineIRBuilder & | MIRBuilder, |
| bool | EmitIR ) |
Definition at line 1895 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVFloatType | ( | unsigned | BitWidth, |
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 1874 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 1862 of file SPIRVGlobalRegistry.cpp.
References llvm::BitWidth, CurMF, llvm::IntegerType::get(), getOrCreateSPIRVType(), I, and TII.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 1821 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(), deduceIntTypeFromResult(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateImageSizeQueryInst(), llvm::genWorkgroupQuery(), getOrCreateOpTypeCoopMatr(), getOrCreatePaddingType(), propagateSPIRVType(), and registerSpirvTypeForNewInstructions().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
| MachineInstr & | I, | ||
| SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1951 of file SPIRVGlobalRegistry.cpp.
References getOrCreateSPIRVPointerType(), and I.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1958 of file SPIRVGlobalRegistry.cpp.
References assert(), getOrCreateSPIRVType(), and storageClassRequiresExplictLayout().
Referenced by llvm::buildEnqueueKernel(), createNewPtrType(), createStackTemporaryForVector(), deduceGEPType(), deducePointerTypeFromResultRegister(), generateAssignInstrs(), getArgSPIRVType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVTypeByName(), insertBitcasts(), validateLifetimeStart(), and validatePtrUnwrapStructField().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | SPIRVTypeInst | BaseType, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1982 of file SPIRVGlobalRegistry.cpp.
References assert(), getOrCreateSPIRVPointerType(), getPointeeType(), getTypeForSPIRVType(), and storageClassRequiresExplictLayout().
|
inline |
Definition at line 310 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVType(), and I.
Referenced by addConstantsToTrack(), assignTypeToVReg(), buildConstantFP(), llvm::buildNDRange(), createNewPtrType(), createStackTemporaryForVector(), llvm::createVirtualRegister(), getArgSPIRVType(), llvm::getCoopMatrType(), getImageType(), llvm::getInlineSpirvType(), getOrCreateSPIRVBoolType(), llvm::getOrCreateSPIRVDeviceEventPointer(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVType(), getOrCreateSPIRVType(), getOrCreateSPIRVTypeByName(), getOrCreateSPIRVVectorType(), getOrCreateVulkanBufferType(), getOrCreateVulkanPushConstantType(), insertInlineAsmProcess(), propagateSPIRVType(), llvm::setRegClassType(), and llvm::updateRegType().
|
inline |
Definition at line 317 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVType().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVType | ( | unsigned | BitWidth, |
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII, | ||
| unsigned | SPIRVOPcode, | ||
| Type * | LLVMTy ) |
Definition at line 1838 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.
| SPIRVTypeInst 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 1776 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVTypeInst | BaseType, |
| unsigned | NumElements, | ||
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 1929 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.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVTypeInst | BaseType, |
| unsigned | NumElements, | ||
| MachineIRBuilder & | MIRBuilder, | ||
| bool | EmitIR ) |
Definition at line 1920 of file SPIRVGlobalRegistry.cpp.
References llvm::FixedVectorType::get(), getOrCreateSPIRVType(), and getTypeForSPIRVType().
Referenced by assignVectTypeToVReg(), llvm::buildBoolRegister(), deduceAndAssignTypeForGUnmerge(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateGroupInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), getOrCreateSPIRVTypeByName(), propagateSPIRVType(), and registerSpirvTypeForNewInstructions().
| Register SPIRVGlobalRegistry::getOrCreateUndef | ( | MachineInstr & | I, |
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 2016 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.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateUnknownType | ( | const Type * | Ty, |
| MachineIRBuilder & | MIRBuilder, | ||
| unsigned | Opcode, | ||
| const ArrayRef< MCOperand > | Operands ) |
Definition at line 1751 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(), and MI.
Referenced by llvm::getInlineSpirvType().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateVulkanBufferType | ( | MachineIRBuilder & | MIRBuilder, |
| Type * | ElemType, | ||
| SPIRV::StorageClass::StorageClass | SC, | ||
| bool | IsWritable, | ||
| bool | EmitIr = false ) |
Definition at line 1492 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().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateVulkanPushConstantType | ( | MachineIRBuilder & | MIRBuilder, |
| Type * | ElemType ) |
Definition at line 1533 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::buildOpDecorate(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVType(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::SPIRV::irhandle_vkbuffer(), MI, and T.
Referenced by llvm::getVulkanPushConstantType().
| SPIRVTypeInst SPIRVGlobalRegistry::getPointeeType | ( | SPIRVTypeInst | PtrType | ) |
Definition at line 1448 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAPFixedPointInst(), changePointerStorageClass(), deduceGEPType(), deduceResultTypeFromOperands(), deduceTypeFromPointerOperand(), llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility(), llvm::generateAFPInst(), llvm::generateICarryBorrowInst(), getOrCreateConstNullPtr(), getOrCreateSPIRVPointerType(), getPointeeTypeOp(), and validateLifetimeStart().
Definition at line 1454 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), getPointeeType(), and getSPIRVTypeForVReg().
|
inline |
Definition at line 421 of file SPIRVGlobalRegistry.h.
Referenced by llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildNDRange(), llvm::genWorkgroupQuery(), and getRegType().
| SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | Register | VReg | ) | const |
Definition at line 1479 of file SPIRVGlobalRegistry.cpp.
References assert(), getPointerStorageClass(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicLoadInst(), llvm::buildAtomicStoreInst(), llvm::buildMemSemanticsReg(), changePointerStorageClass(), deduceGEPType(), llvm::generateCastToPtrInst(), getOrCreateGlobalVariableWithBinding(), getPointerStorageClass(), and propagateSPIRVType().
| SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1487 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
| const TargetRegisterClass * SPIRVGlobalRegistry::getRegClass | ( | SPIRVTypeInst | SpvType | ) | const |
Definition at line 2050 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(), createStackTemporaryForVector(), llvm::createVirtualRegister(), generateAssignType(), llvm::generateReadImageInst(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), llvm::processInstr(), propagateSPIRVType(), llvm::setRegClassIfNull(), llvm::setRegClassType(), and llvm::updateRegType().
| LLT SPIRVGlobalRegistry::getRegType | ( | SPIRVTypeInst | SpvType | ) | const |
Definition at line 2077 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(), legalizeSpvInsertElt(), llvm::processInstr(), llvm::setRegClassType(), and llvm::updateRegType().
| SPIRVTypeInst SPIRVGlobalRegistry::getResultType | ( | Register | VReg, |
| MachineFunction * | MF = nullptr ) |
Definition at line 1291 of file SPIRVGlobalRegistry.cpp.
References CurMF, llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), and llvm::getVRegDef().
Referenced by llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility().
| unsigned SPIRVGlobalRegistry::getScalarOrVectorBitWidth | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1408 of file SPIRVGlobalRegistry.cpp.
References assert(), getSPIRVTypeForVReg(), and llvm_unreachable.
Referenced by buildConstantFP(), buildConstantInt(), llvm::buildSelectInst(), createConstFP(), createConstInt(), llvm::generateBuiltinVar(), llvm::generateWaveInst(), getOrCreateConsIntVector(), getOrCreateConstInt(), getOrCreateConstIntArray(), getOrCreateConstVector(), getOrCreateConstVector(), getOrCreateConstVector(), getRegType(), and propagateSPIRVType().
Definition at line 1381 of file SPIRVGlobalRegistry.cpp.
References getScalarOrVectorComponentCount(), and getSPIRVTypeForVReg().
Referenced by llvm::generateConvertInst(), llvm::getBuiltinCallArguments(), getScalarOrVectorComponentCount(), and propagateSPIRVType().
| unsigned SPIRVGlobalRegistry::getScalarOrVectorComponentCount | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1386 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
| SPIRVTypeInst SPIRVGlobalRegistry::getScalarOrVectorComponentType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1395 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), getSPIRVTypeForVReg(), and isScalarOrVectorOfType().
Referenced by createStackTemporaryForVector(), deduceAndAssignTypeForGUnmerge(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), legalizeSpvConstComposite(), and legalizeSpvInsertElt().
| SPIRVTypeInst SPIRVGlobalRegistry::getSPIRVTypeForVReg | ( | Register | VReg, |
| const MachineFunction * | MF = nullptr ) const |
Definition at line 1280 of file SPIRVGlobalRegistry.cpp.
References CurMF.
Referenced by llvm::buildAPFixedPointInst(), llvm::buildAtomicCompareExchangeInst(), buildGlobalVariable(), llvm::buildNDRange(), buildOpBitcast(), createStackTemporaryForVector(), deduceAndAssignTypeForGUnmerge(), deduceGEPType(), deducePointerTypeFromResultRegister(), deduceTypeFromPointerOperand(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), ensureAssignTypeForTypeFolding(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateAFPInst(), generateAssignInstrs(), llvm::generateCoopMatrInst(), llvm::generateDotOrFMulInst(), llvm::generateGroupInst(), llvm::generateICarryBorrowInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateIntelSubgroupsInst(), llvm::generateReadImageInst(), llvm::generateSampleImageInst(), llvm::genWorkgroupQuery(), llvm::getBuiltinCallArguments(), getNumScalarOrVectorTotalBitWidth(), getOrCreateConstIntArray(), getPointeeType(), getPointeeTypeOp(), getPointerStorageClass(), getRegClass(), getRegType(), getResultType(), getScalarOrVectorBitWidth(), getScalarOrVectorComponentCount(), getScalarOrVectorComponentType(), hasSPIRVTypeForVReg(), insertBitcasts(), isScalarOfType(), isScalarOrVectorOfType(), legalizeSpvConstComposite(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), lowerBitcasts(), llvm::SPIRV::lowerBuiltin(), llvm::processInstr(), propagateSPIRVType(), registerSpirvTypeForNewInstructions(), requiresSpirvType(), retrieveScalarOrVectorIntType(), llvm::setRegClassIfNull(), typesLogicallyMatch(), validateAccessChain(), validateFunCallMachineDef(), validateGroupWaitEventsPtr(), validateLifetimeStart(), validatePtrTypes(), and validatePtrUnwrapStructField().
| Register SPIRVGlobalRegistry::getSPIRVTypeID | ( | SPIRVTypeInst | SpirvType | ) | const |
Definition at line 1122 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::buildAPFixedPointInst(), llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicFlagInst(), llvm::buildAtomicFloatingRMWInst(), llvm::buildAtomicLoadInst(), llvm::buildAtomicRMWInst(), llvm::buildBindlessImageINTELInst(), buildConstantFP(), buildConstantInt(), buildConstantSampler(), llvm::buildEnqueueKernel(), llvm::buildExtendedBitOpsInst(), buildGlobalVariable(), llvm::buildImageChannelDataTypeInst(), llvm::buildNDRange(), buildOpBitcast(), llvm::buildPipeInst(), llvm::buildTernaryBitwiseFunctionINTELInst(), createConstFP(), createConstInt(), doInsertBitcast(), llvm::generateAFPInst(), generateAssignType(), 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::generatePredicatedLoadStoreInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::generateSampleImageInst(), llvm::generateSpecConstantInst(), llvm::generateVectorLoadStoreInst(), llvm::getBuiltinCallArguments(), llvm::getInlineSpirvType(), getOrCreateConstNullPtr(), getOrCreateOpTypeCoopMatr(), getOrCreateOpTypeSampledImage(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), insertInlineAsmProcess(), llvm::SPIRVTargetLowering::insertLogicalCopyOnResult(), and llvm::SPIRV::lowerBuiltinType().
|
inline |
Definition at line 324 of file SPIRVGlobalRegistry.h.
References assert().
Referenced by llvm::buildAPFixedPointInst(), llvm::buildBoolRegister(), buildConstantInt(), buildGlobalVariable(), createStackTemporaryForVector(), fixFunctionTypeIfPtrArgs(), llvm::generateAFPInst(), generateAssignInstrs(), getOrCreateConsIntVector(), getOrCreateConstInt(), getOrCreateConstIntArray(), getOrCreateConstNullPtr(), getOrCreateConstVector(), getOrCreateConstVector(), getOrCreateOpTypeCoopMatr(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVVectorType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), validateFunCallMachineDef(), and validatePtrTypes().
|
inline |
Definition at line 270 of file SPIRVGlobalRegistry.h.
Definition at line 356 of file SPIRVGlobalRegistry.h.
References getSPIRVTypeForVReg().
| void SPIRVGlobalRegistry::invalidateMachineInstr | ( | MachineInstr * | MI | ) |
Definition at line 233 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::dyn_cast(), llvm::SPIRVIRMapping::erase(), F, MI, and TII.
Referenced by addConstantsToTrack(), llvm::SPIRVCombinerHelper::applySPIRVFaceForward(), cleanupHelperInstructions(), foldConstantsIntoIntrinsics(), generateAssignInstrs(), insertBitcasts(), insertInlineAsmProcess(), insertSpirvDecorations(), lowerBitcasts(), and processBlockAddr().
|
inline |
Definition at line 371 of file SPIRVGlobalRegistry.h.
| bool SPIRVGlobalRegistry::isBitcastCompatible | ( | SPIRVTypeInst | Type1, |
| SPIRVTypeInst | Type2 ) const |
Definition at line 1459 of file SPIRVGlobalRegistry.cpp.
References getNumScalarOrVectorTotalBitWidth(), llvm::MachineInstr::getOpcode(), and retrieveScalarOrVectorIntType().
Referenced by buildOpBitcast(), and validatePtrTypes().
| bool SPIRVGlobalRegistry::isResourceType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1367 of file SPIRVGlobalRegistry.cpp.
Definition at line 1346 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), and llvm::generateReadImageInst().
Definition at line 1353 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), and getSPIRVTypeForVReg().
Referenced by llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateConvertInst(), llvm::generateDotOrFMulInst(), and getScalarOrVectorComponentType().
| bool SPIRVGlobalRegistry::isScalarOrVectorSigned | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1443 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), and retrieveScalarOrVectorIntType().
|
inline |
Definition at line 264 of file SPIRVGlobalRegistry.h.
References F, and llvm::MachineOperand::getParent().
|
inline |
Definition at line 259 of file SPIRVGlobalRegistry.h.
References F.
Definition at line 2178 of file SPIRVGlobalRegistry.cpp.
References llvm::Value::replaceAllUsesWith(), updateIfExistAssignPtrTypeInstr(), and updateIfExistDeducedElementType().
| SPIRVTypeInst SPIRVGlobalRegistry::retrieveScalarOrVectorIntType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1437 of file SPIRVGlobalRegistry.cpp.
References getSPIRVTypeForVReg().
Referenced by isBitcastCompatible(), and isScalarOrVectorSigned().
|
inline |
Definition at line 119 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 364 of file SPIRVGlobalRegistry.h.
References CurMF.
Referenced by llvm::SPIRVTargetLowering::finalizeLowering(), and validateFunCallMachineDef().
Definition at line 2224 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 151 of file SPIRVGlobalRegistry.h.
References findAssignPtrTypeInstr().
Referenced by replaceAllUsesWith().
|
inline |
Definition at line 194 of file SPIRVGlobalRegistry.h.
References findDeducedElementType().
Referenced by replaceAllUsesWith().
| MachineFunction* llvm::SPIRVGlobalRegistry::CurMF |
Definition at line 117 of file SPIRVGlobalRegistry.h.
Referenced by assignFloatTypeToVReg(), assignIntTypeToVReg(), assignVectTypeToVReg(), buildConstantInt(), buildGlobalVariable(), createConstFP(), createConstInt(), deduceAndAssignSpirvType(), getOrCreateConstFP(), getOrCreateConstInt(), getOrCreateConstNullPtr(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), getResultType(), getSPIRVTypeForVReg(), requiresSpirvType(), setCurrentFunc(), and SPIRVGlobalRegistry().