|
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 2238 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 2218 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 526 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 477 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(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), CurMF, llvm::SPIRVIRMapping::find(), llvm::MachineIRBuilder::getMF(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), getTypeForSPIRVType(), llvm::Register::isValid(), llvm::LLT::scalar(), and llvm::MachineRegisterInfo::setRegClass().
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 782 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(), llvm::Register::isValid(), and llvm::Sampler.
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 805 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(), 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 2199 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 2002 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 372 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 434 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 1611 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 1452 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::getImm(), and getSPIRVTypeForVReg().
Referenced by isBitcastCompatible().
| MachineInstr * SPIRVGlobalRegistry::getOrAddMemAliasingINTELInst | ( | MachineIRBuilder & | MIRBuilder, |
| const MDNode * | AliasingListMD ) |
Definition at line 2148 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineRegisterInfo::createVirtualRegister(), D(), llvm::dyn_cast(), llvm::MachineInstrBuilder::getInstr(), llvm::MachineIRBuilder::getMRI(), llvm::MDNode::getNumOperands(), llvm::MachineInstr::insert(), llvm::List, 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 737 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 359 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 420 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 412 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 671 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 754 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 652 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 631 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 622 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 910 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 1584 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 1769 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 1739 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 1707 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 1120 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 1691 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 1721 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 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_sampler(), and MI.
Referenced by buildConstantSampler(), and llvm::getSamplerType().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreatePaddingType | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 1552 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 1933 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 1925 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 1904 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 1892 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 1851 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 1984 of file SPIRVGlobalRegistry.cpp.
References getOrCreateSPIRVPointerType(), and I.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1991 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 2015 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 1868 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 1806 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 1959 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), assert(), 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 1950 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 2049 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 1781 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 1522 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 1563 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 1478 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 1484 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 1509 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 1517 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
| const TargetRegisterClass * SPIRVGlobalRegistry::getRegClass | ( | SPIRVTypeInst | SpvType | ) | const |
Definition at line 2083 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 2110 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 1321 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 1438 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 1411 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 1416 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
| SPIRVTypeInst SPIRVGlobalRegistry::getScalarOrVectorComponentType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1425 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 1310 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 1152 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 1489 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 1397 of file SPIRVGlobalRegistry.cpp.
Definition at line 1376 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), and llvm::generateReadImageInst().
Definition at line 1383 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 1473 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 2211 of file SPIRVGlobalRegistry.cpp.
References llvm::Value::replaceAllUsesWith(), updateIfExistAssignPtrTypeInstr(), and updateIfExistDeducedElementType().
| SPIRVTypeInst SPIRVGlobalRegistry::retrieveScalarOrVectorIntType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1467 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 2257 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().