|
LLVM 24.0.0git
|
#include "Target/SPIRV/SPIRVGlobalRegistry.h"
Public Attributes | |
| MachineFunction * | CurMF |
Definition at line 32 of file SPIRVGlobalRegistry.h.
| SPIRVGlobalRegistry::SPIRVGlobalRegistry | ( | DataLayout | DL | ) |
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 111 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 102 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 137 of file SPIRVGlobalRegistry.cpp.
Referenced by assignFloatTypeToVReg(), assignIntTypeToVReg(), assignTypeToVReg(), assignVectTypeToVReg(), llvm::buildAPFixedPointInst(), llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicRMWInst(), llvm::buildBoolRegister(), buildConstantFP(), buildGlobalVariable(), llvm::buildNDRange(), llvm::buildSRetInst(), convertPtrToInt(), createConstFP(), createStackTemporaryForVector(), llvm::createVirtualRegister(), generateAssignType(), llvm::generateGroupInst(), llvm::generateImageSizeQueryInst(), llvm::generateMulExtendedInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), getOrCreateConstNullPtr(), getOrCreateUndef(), insertBitcasts(), insertInlineAsmProcess(), legalizeSpvConstComposite(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), llvm::processInstr(), propagateSPIRVType(), llvm::setRegClassType(), llvm::updateRegType(), and widenSignSensitiveOps().
| SPIRVTypeInst SPIRVGlobalRegistry::assignTypeToVReg | ( | const Type * | Type, |
| Register | VReg, | ||
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::AccessQualifier::AccessQualifier | AQ, | ||
| bool | EmitIR ) |
Definition at line 128 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 119 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), CurMF, getOrCreateSPIRVVectorType(), I, and TII.
Definition at line 2243 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 2223 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 524 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 478 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::MachineRegisterInfo::createGenericVirtualRegister(), 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::buildOpSpirvDecorations(), 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 777 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 800 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::dyn_cast(), llvm::GlobalValue::ExternalLinkage, llvm::SPIRVIRMapping::find(), llvm::MachineFunction::front(), llvm::PointerType::get(), llvm::GlobalVariable::getAlign(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMBB(), 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::MachineIRBuilder::getState(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), llvm::Value::hasName(), llvm::LLT::pointer(), llvm::MachineIRBuilder::setInsertPt(), 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 2204 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 2013 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 379 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(), 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 438 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assignIntTypeToVReg(), llvm::BitWidth, llvm::MachineIRBuilder::buildInstr(), 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 getArgSPIRVType(), 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 1612 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 1456 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getScalarOrVectorComponentCount(), and getScalarOrVectorComponentType().
Referenced by isBitcastCompatible().
| MachineInstr * SPIRVGlobalRegistry::getOrAddMemAliasingINTELInst | ( | MachineIRBuilder & | MIRBuilder, |
| const MDNode * | AliasingListMD ) |
Definition at line 2153 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 732 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), getScalarOrVectorBitWidth(), getScalarOrVectorComponentCount(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), and llvm::Type::isVectorTy().
Referenced by llvm::buildSelectInst(), and llvm::generateRelationalInst().
| Register SPIRVGlobalRegistry::getOrCreateConstFP | ( | APFloat | Val, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 366 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 424 of file SPIRVGlobalRegistry.cpp.
References llvm::cast(), createConstInt(), CurMF, llvm::SPIRVIRMapping::findMI(), getContext(), getTypeForSPIRVType(), I, MI, and TII.
| Register SPIRVGlobalRegistry::getOrCreateConstInt | ( | uint64_t | Val, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 416 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 666 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 749 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(), getPointerSize(), 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 647 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), getScalarOrVectorBitWidth(), getScalarOrVectorComponentCount(), 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 626 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), getScalarOrVectorBitWidth(), getScalarOrVectorComponentCount(), 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 617 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 911 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 1585 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 1770 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 1740 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 1708 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 1121 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 1692 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 1722 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 1678 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 1553 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 1934 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 1926 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(), llvm::generateRelationalInst(), and llvm::genWorkgroupQuery().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVFloatType | ( | unsigned | BitWidth, |
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 1905 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 1893 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 1852 of file SPIRVGlobalRegistry.cpp.
References llvm::BitWidth, llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by assignIntTypeToVReg(), llvm::buildConstantIntReg32(), llvm::buildEnqueueKernel(), llvm::buildOpSpirvDecorations(), deduceIntTypeFromResult(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateImageSizeQueryInst(), llvm::genWorkgroupQuery(), getOrCreateOpTypeCoopMatr(), getOrCreatePaddingType(), propagateSPIRVType(), registerSpirvTypeForNewInstructions(), and widenSignSensitiveOps().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
| MachineInstr & | I, | ||
| SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1985 of file SPIRVGlobalRegistry.cpp.
References getOrCreateSPIRVPointerType(), and I.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1992 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::dwarf_linker::DebugLoc, llvm::DS_Error, F, llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVType(), llvm::MachineFunction::getSubtarget(), 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 2026 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(), 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 1869 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 1807 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 1960 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 1951 of file SPIRVGlobalRegistry.cpp.
References llvm::FixedVectorType::get(), getOrCreateSPIRVType(), and getTypeForSPIRVType().
Referenced by assignVectTypeToVReg(), llvm::buildBoolRegister(), deduceAndAssignTypeForGUnmerge(), deduceIntTypeFromResult(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), llvm::SPIRVTargetLowering::finalizeLowering(), generateAssignInstrs(), llvm::generateGroupInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::genWorkgroupQuery(), getArgSPIRVType(), llvm::getBuiltinCallArguments(), getOrCreateSPIRVTypeByName(), propagateSPIRVType(), and registerSpirvTypeForNewInstructions().
| Register SPIRVGlobalRegistry::getOrCreateUndef | ( | MachineInstr & | I, |
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 2060 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::BuildMI(), 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 1782 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 1523 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 1564 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 1479 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAPFixedPointInst(), llvm::buildNDRange(), changePointerStorageClass(), deduceGEPType(), deduceResultTypeFromOperands(), deduceTypeFromPointerOperand(), llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility(), llvm::generateAFPInst(), llvm::generateICarryBorrowInst(), llvm::generateMulExtendedInst(), getOrCreateConstNullPtr(), getOrCreateSPIRVPointerType(), getPointeeTypeOp(), and validateLifetimeStart().
Definition at line 1485 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), getPointeeType(), and getSPIRVTypeForVReg().
|
inline |
Definition at line 421 of file SPIRVGlobalRegistry.h.
Referenced by buildGlobalVariable(), llvm::buildNDRange(), llvm::genWorkgroupQuery(), getOrCreateConstNullPtr(), and getRegType().
| SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | Register | VReg | ) | const |
Definition at line 1510 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 1518 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
| const TargetRegisterClass * SPIRVGlobalRegistry::getRegClass | ( | SPIRVTypeInst | SpvType | ) | const |
Definition at line 2091 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), and getScalarOrVectorComponentType().
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(), llvm::updateRegType(), and widenSignSensitiveOps().
| LLT SPIRVGlobalRegistry::getRegType | ( | SPIRVTypeInst | SpvType | ) | const |
Definition at line 2117 of file SPIRVGlobalRegistry.cpp.
References llvm::LLT::fixed_vector(), getAS(), llvm::MachineInstr::getOpcode(), getPointerSize(), getScalarOrVectorBitWidth(), getScalarOrVectorComponentCount(), getScalarOrVectorComponentType(), llvm::LLT::pointer(), and llvm::LLT::scalar().
Referenced by llvm::createVirtualRegister(), llvm::generateReadImageInst(), insertInlineAsmProcess(), legalizeSpvInsertElt(), llvm::processInstr(), llvm::setRegClassType(), and llvm::updateRegType().
| SPIRVTypeInst SPIRVGlobalRegistry::getResultType | ( | Register | VReg, |
| MachineFunction * | MF = nullptr ) |
Definition at line 1328 of file SPIRVGlobalRegistry.cpp.
References CurMF, llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), and llvm::getVRegDef().
Referenced by addInstrRequirements(), and llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility().
| unsigned SPIRVGlobalRegistry::getScalarOrVectorBitWidth | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1445 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getScalarOrVectorComponentType(), and llvm_unreachable.
Referenced by addInstrRequirements(), buildConstantFP(), buildConstantInt(), llvm::buildSelectInst(), createConstFP(), createConstInt(), llvm::generateBuiltinVar(), llvm::generateWaveInst(), getOrCreateConsIntVector(), getOrCreateConstInt(), getOrCreateConstIntArray(), getOrCreateConstVector(), getOrCreateConstVector(), getOrCreateConstVector(), getRegType(), and propagateSPIRVType().
Definition at line 1418 of file SPIRVGlobalRegistry.cpp.
References getScalarOrVectorComponentCount(), and getSPIRVTypeForVReg().
Referenced by llvm::buildBoolRegister(), llvm::SPIRV::demangledArgTypesMatchIR(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateBuiltinVar(), llvm::generateConvertInst(), llvm::generateImageSizeQueryInst(), llvm::generateRelationalInst(), llvm::getBuiltinCallArguments(), getNumScalarOrVectorTotalBitWidth(), getOrCreateConsIntVector(), getOrCreateConstVector(), getOrCreateConstVector(), getRegType(), getScalarOrVectorComponentCount(), and propagateSPIRVType().
| unsigned SPIRVGlobalRegistry::getScalarOrVectorComponentCount | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1423 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
| SPIRVTypeInst SPIRVGlobalRegistry::getScalarOrVectorComponentType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1432 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), getSPIRVTypeForVReg(), and isScalarOrVectorOfType().
Referenced by createStackTemporaryForVector(), deduceAndAssignTypeForGUnmerge(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), llvm::SPIRV::demangledArgTypesMatchIR(), llvm::generateImageSizeQueryInst(), getNumScalarOrVectorTotalBitWidth(), getRegClass(), getRegType(), getScalarOrVectorBitWidth(), legalizeSpvConstComposite(), legalizeSpvInsertElt(), and retrieveScalarOrVectorIntType().
| SPIRVTypeInst SPIRVGlobalRegistry::getSPIRVTypeForVReg | ( | Register | VReg, |
| const MachineFunction * | MF = nullptr ) const |
Definition at line 1317 of file SPIRVGlobalRegistry.cpp.
References CurMF.
Referenced by addInstrRequirements(), addPrintfRequirements(), llvm::buildAPFixedPointInst(), llvm::buildAtomicCompareExchangeInst(), buildGlobalVariable(), llvm::buildNDRange(), buildOpBitcast(), createStackTemporaryForVector(), deduceAndAssignTypeForGUnmerge(), deduceGEPType(), deducePointerTypeFromResultRegister(), deduceResultTypeFromOperands(), deduceTypeFromPointerOperand(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), llvm::SPIRV::demangledArgTypesMatchIR(), ensureAssignTypeForTypeFolding(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateAFPInst(), generateAssignInstrs(), llvm::generateCoopMatrInst(), llvm::generateDotOrFMulInst(), llvm::generateGroupInst(), llvm::generateICarryBorrowInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateIntelSubgroupsInst(), llvm::generateMulExtendedInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::generateSampleImageInst(), llvm::genWorkgroupQuery(), llvm::getBuiltinCallArguments(), getOrCreateConstIntArray(), getPointeeType(), getPointeeTypeOp(), getPointerStorageClass(), getResultType(), getScalarOrVectorComponentCount(), getScalarOrVectorComponentType(), handleMIFlagDecoration(), hasSPIRVTypeForVReg(), insertBitcasts(), isConcreteSPIRVType(), isScalarOfType(), isScalarOrVectorOfType(), legalizeSpvConstComposite(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), lowerBitcasts(), llvm::SPIRV::lowerBuiltin(), patchPhis(), llvm::processInstr(), propagateSPIRVType(), registerSpirvTypeForNewInstructions(), requiresSpirvType(), llvm::setRegClassIfNull(), typesLogicallyMatch(), validateAccessChain(), validateFunCallMachineDef(), validateGroupWaitEventsPtr(), validateLifetimeStart(), validatePtrTypes(), and validatePtrUnwrapStructField().
| Register SPIRVGlobalRegistry::getSPIRVTypeID | ( | SPIRVTypeInst | SpirvType | ) | const |
Definition at line 1153 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::buildSRetInst(), llvm::buildTernaryBitwiseFunctionINTELInst(), createConstFP(), createConstInt(), doInsertBitcast(), llvm::generateAFPInst(), llvm::generateArithmeticInst(), generateAssignType(), llvm::generateAsyncCopy(), llvm::generateAtomicInst(), llvm::generateCastToPtrInst(), llvm::generateConstructInst(), llvm::generateConvertInst(), llvm::generateCoopMatrInst(), llvm::generateDotOrFMulInst(), llvm::generateEnqueueInst(), llvm::generateExtInst(), llvm::generateGroupInst(), llvm::generateGroupUniformInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateIntelSubgroupsInst(), llvm::generateKernelClockInst(), llvm::generateLoadStoreInst(), llvm::generateMulExtendedInst(), 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(), llvm::SPIRV::lowerBuiltinType(), and patchPhis().
|
inline |
Definition at line 324 of file SPIRVGlobalRegistry.h.
References assert().
Referenced by llvm::buildAPFixedPointInst(), llvm::buildBoolRegister(), buildConstantInt(), buildGlobalVariable(), llvm::buildNDRange(), createStackTemporaryForVector(), fixFunctionTypeIfPtrArgs(), llvm::generateAFPInst(), generateAssignInstrs(), getOrCreateConsIntVector(), getOrCreateConstInt(), getOrCreateConstIntArray(), getOrCreateConstNullPtr(), getOrCreateConstVector(), getOrCreateConstVector(), getOrCreateOpTypeCoopMatr(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVVectorType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), handleMIFlagDecoration(), 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 240 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::dyn_cast(), llvm::SPIRVIRMapping::erase(), F, MI, and TII.
Referenced by llvm::SPIRVCombinerHelper::applySPIRVFaceForward(), and invalidateAndEraseMI().
|
inline |
Definition at line 371 of file SPIRVGlobalRegistry.h.
| bool SPIRVGlobalRegistry::isBitcastCompatible | ( | SPIRVTypeInst | Type1, |
| SPIRVTypeInst | Type2 ) const |
Definition at line 1490 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 1404 of file SPIRVGlobalRegistry.cpp.
Definition at line 1383 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), and llvm::generateReadImageInst().
Definition at line 1390 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), and getSPIRVTypeForVReg().
Referenced by llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateConvertInst(), llvm::generateDotOrFMulInst(), llvm::generateRelationalInst(), and getScalarOrVectorComponentType().
| bool SPIRVGlobalRegistry::isScalarOrVectorSigned | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1474 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 2216 of file SPIRVGlobalRegistry.cpp.
References llvm::Value::replaceAllUsesWith(), updateIfExistAssignPtrTypeInstr(), and updateIfExistDeducedElementType().
| SPIRVTypeInst SPIRVGlobalRegistry::retrieveScalarOrVectorIntType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1468 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), and getScalarOrVectorComponentType().
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 2262 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(), createConstFP(), createConstInt(), getOrCreateConstFP(), getOrCreateConstInt(), getOrCreateConstNullPtr(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), getResultType(), getSPIRVTypeForVReg(), requiresSpirvType(), setCurrentFunc(), and SPIRVGlobalRegistry().