|
LLVM 24.0.0git
|
#include "Target/SPIRV/SPIRVGlobalRegistry.h"
Public Attributes | |
| MachineFunction * | CurMF |
Definition at line 33 of file SPIRVGlobalRegistry.h.
| SPIRVGlobalRegistry::SPIRVGlobalRegistry | ( | DataLayout | DL | ) |
Definition at line 91 of file SPIRVGlobalRegistry.cpp.
References CurMF.
|
inline |
Definition at line 156 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and buildAssignType().
Definition at line 217 of file SPIRVGlobalRegistry.h.
Definition at line 201 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and updateAssignType().
|
inline |
Definition at line 297 of file SPIRVGlobalRegistry.h.
Referenced by llvm::SPIRVTargetLowering::finalizeLowering().
|
inline |
Definition at line 136 of file SPIRVGlobalRegistry.h.
Referenced by addConstantsToTrack(), and buildGlobalVariable().
Definition at line 177 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 145 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 186 of file SPIRVGlobalRegistry.h.
References llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key.
Referenced by generateAssignInstrs().
| 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 119 of file SPIRVGlobalRegistry.cpp.
Referenced by assignIntTypeToVReg(), assignTypeToVReg(), llvm::buildAPFixedPointInst(), llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicRMWInst(), llvm::buildBoolRegister(), buildConstantFP(), buildGlobalVariable(), llvm::buildNDRange(), llvm::buildSRetInst(), convertPtrToInt(), createConstFP(), createStackTemporaryForVector(), llvm::createVirtualRegister(), generateAssignType(), llvm::generateCastToPtrInst(), llvm::generateExtInst(), 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 110 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by buildConstantInt().
Definition at line 2360 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().
| void SPIRVGlobalRegistry::buildAssignType | ( | IRBuilder<> & | B, |
| Type * | Ty, | ||
| Value * | Arg, | ||
| bool | CanUseAnyVectorRank ) |
Definition at line 2340 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 528 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 482 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::SPIRVIRMapping::find(), llvm::MachineIRBuilder::getMF(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), getTypeForSPIRVType(), llvm::Register::isValid(), MRI, and llvm::LLT::scalar().
Referenced by llvm::buildConstantIntReg32(), llvm::buildNDRange(), llvm::buildOpSpirvDecorations(), llvm::buildSelectInst(), llvm::generateAsyncCopy(), llvm::generateCastToPtrInst(), llvm::generateExtInst(), llvm::generateGroupInst(), llvm::genWorkgroupQuery(), llvm::getInlineSpirvType(), and getOrCreateOpTypeCoopMatr().
| Register SPIRVGlobalRegistry::buildConstantSampler | ( | Register | Res, |
| unsigned | AddrMode, | ||
| unsigned | Param, | ||
| unsigned | FilerMode, | ||
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 794 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 817 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::DS_Error, llvm::dyn_cast(), llvm::GlobalValue::ExternalLinkage, F, llvm::SPIRVIRMapping::find(), llvm::MachineFunction::front(), llvm::PointerType::get(), llvm::GlobalVariable::getAlign(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::MachineFunction::getFunction(), llvm::Type::getInt8Ty(), llvm::MachineIRBuilder::getMBB(), llvm::GlobalObject::getMetadata(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::Value::getName(), llvm::MachineInstr::getOperand(), getOrCreateSPIRVType(), llvm::GlobalValue::getParent(), getPointeeType(), getPointerSize(), llvm::MachineOperand::getReg(), llvm::getSpirvBuiltInIdByName(), getSPIRVTypeForVReg(), getSPIRVTypeID(), llvm::MachineIRBuilder::getState(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), llvm::GlobalValue::getValueType(), llvm::Value::hasName(), MRI, 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 2321 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 2088 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 383 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 442 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 160 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and updateIfExistAssignPtrTypeInstr().
Definition at line 221 of file SPIRVGlobalRegistry.h.
Referenced by getDeducedGlobalValueType().
Definition at line 203 of file SPIRVGlobalRegistry.h.
Referenced by llvm::deduceSRetPointeeType(), getArgSPIRVType(), getAtomicElemTy(), getDeducedGlobalValueType(), getDeducedPointeeByteSize(), getFunctionPointerElemType(), and updateIfExistDeducedElementType().
Definition at line 179 of file SPIRVGlobalRegistry.h.
Referenced by restoreMutatedType().
|
inline |
Definition at line 149 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 190 of file SPIRVGlobalRegistry.h.
References llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key.
|
inline |
Definition at line 134 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 236 of file SPIRVGlobalRegistry.h.
References llvm::dyn_cast(), findDeducedCompositeType(), findDeducedElementType(), llvm::SPIRV::getOriginalFunctionType(), and llvm::Global.
Referenced by propagateSPIRVType().
Definition at line 432 of file SPIRVGlobalRegistry.h.
References findDeducedElementType().
Referenced by llvm::generateAsyncCopy(), and llvm::generateExtInst().
|
inline |
Definition at line 303 of file SPIRVGlobalRegistry.h.
References F.
Referenced by validateForwardCalls().
|
inline |
Definition at line 274 of file SPIRVGlobalRegistry.h.
References llvm::Function::end(), and MI.
Referenced by validateForwardCalls().
|
inline |
Definition at line 265 of file SPIRVGlobalRegistry.h.
References F, and llvm::MachineInstr::getParent().
Referenced by validateFunCall().
|
inline |
Definition at line 255 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 139 of file SPIRVGlobalRegistry.h.
| SPIRVTypeInst SPIRVGlobalRegistry::getImageType | ( | const TargetExtType * | ExtensionType, |
| const SPIRV::AccessQualifier::AccessQualifier | Qualifier, | ||
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 1683 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 1514 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getScalarOrVectorComponentCount(), and getScalarOrVectorComponentType().
Referenced by isBitcastCompatible().
| SPIRVTypeInst SPIRVGlobalRegistry::getOpTypeVoid | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 214 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineIRBuilder::buildInstr(), and createTypeVReg().
| MachineInstr * SPIRVGlobalRegistry::getOrAddMemAliasingINTELInst | ( | MachineIRBuilder & | MIRBuilder, |
| const MDNode * | AliasingListMD ) |
Definition at line 2266 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), D(), llvm::dyn_cast(), llvm::MachineInstrBuilder::getInstr(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::MDNode::getNumOperands(), llvm::MachineInstr::insert(), llvm::List, MRI, llvm::MDNode::operands(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by addMemoryOperands(), and buildMemAliasingOpDecorate().
| Register SPIRVGlobalRegistry::getOrCreateConsIntVector | ( | uint64_t | Val, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRVTypeInst | SpvType, | ||
| bool | EmitIR ) |
Definition at line 749 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 370 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 428 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 420 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 683 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 766 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 664 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 629 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::ConstantPointerNull::get(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), getScalarOrVectorBitWidth(), getScalarOrVectorComponentCount(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), I, llvm::Type::isIntegerTy(), llvm::Type::isPointerTy(), llvm::Type::isVectorTy(), llvm::APInt::isZero(), llvm_unreachable, and TII.
| Register SPIRVGlobalRegistry::getOrCreateConstVector | ( | uint64_t | Val, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 620 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 960 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 1656 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 1841 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 1811 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 1779 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 1166 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 1763 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 1793 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 1749 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 1623 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 2005 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 1997 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 1976 of file SPIRVGlobalRegistry.cpp.
References llvm::BitWidth, CurMF, llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::Type::getHalfTy(), getOrCreateSPIRVType(), I, llvm_unreachable, and TII.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 1964 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 1923 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::buildKernelInvokeOperands(), llvm::buildOpSpirvDecorations(), deduceIntTypeFromResult(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateImageSizeQueryInst(), llvm::genWorkgroupQuery(), getOrCreateOpTypeCoopMatr(), getOrCreatePaddingType(), propagateSPIRVType(), registerSpirvTypeForNewInstructions(), widenBitCountOps(), and widenSignSensitiveOps().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
| MachineInstr & | I, | ||
| SPIRV::StorageClass::StorageClass | SC, | ||
| bool | ForceTyped = false ) |
Definition at line 2059 of file SPIRVGlobalRegistry.cpp.
References getOrCreateSPIRVPointerType(), and I.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::StorageClass::StorageClass | SC, | ||
| bool | ForceTyped = false ) |
Definition at line 2066 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(), llvm::buildKernelInvokeOperands(), createNewPtrType(), createStackTemporaryForVector(), deduceGEPType(), deducePointerTypeFromResultRegister(), generateAssignInstrs(), getArgSPIRVType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVTypeByName(), getOrCreateSPIRVTypedPointerType(), insertBitcasts(), validateLifetimeStart(), and validatePtrUnwrapStructField().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | SPIRVTypeInst | BaseType, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 2101 of file SPIRVGlobalRegistry.cpp.
References assert(), getOrCreateSPIRVPointerType(), getPointeeType(), getTypeForSPIRVType(), and storageClassRequiresExplictLayout().
|
inline |
Definition at line 327 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVType(), and I.
Referenced by addConstantsToTrack(), assignTypeToVReg(), buildConstantFP(), buildGlobalVariable(), llvm::buildNDRange(), createNewPtrType(), createStackTemporaryForVector(), llvm::createVirtualRegister(), llvm::deduceSRetPointeeType(), generateAssignInstrs(), getArgSPIRVType(), llvm::getCoopMatrType(), getImageType(), llvm::getInlineSpirvType(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVType(), getOrCreateSPIRVType(), getOrCreateSPIRVTypeByName(), getOrCreateSPIRVVectorType(), getOrCreateVulkanBufferType(), getOrCreateVulkanPushConstantType(), insertBitcasts(), insertInlineAsmProcess(), propagateSPIRVType(), llvm::setRegClassType(), and llvm::updateRegType().
|
inline |
Definition at line 334 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVType().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVType | ( | unsigned | BitWidth, |
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII, | ||
| unsigned | SPIRVOPcode, | ||
| Type * | LLVMTy ) |
Definition at line 1940 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 1878 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().
|
inline |
Definition at line 659 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVPointerType().
Referenced by getArgSPIRVType().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVUntypedPointerType | ( | SPIRV::StorageClass::StorageClass | SC, |
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 2142 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), assert(), llvm::BuildMI(), llvm::cast(), createTypeVReg(), CurMF, llvm::SPIRVIRMapping::findMI(), llvm::MCInstrInfo::get(), llvm::PointerType::get(), llvm::Function::getContext(), llvm::MachineIRBuilder::getDebugLoc(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getInsertPt(), llvm::MachineIRBuilder::getMBB(), llvm::MachineIRBuilder::getMF(), llvm::MachineFunction::getSubtarget(), llvm::MachineIRBuilder::getTII(), llvm::SPIRV::irhandle_untyped_pointer(), MI, and llvm::storageClassToAddressSpace().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVTypeInst | BaseType, |
| unsigned | NumElements, | ||
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 2031 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), assert(), CurMF, llvm::SPIRVIRMapping::findMI(), llvm::FixedVectorType::get(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), getTypeForSPIRVType(), I, llvm::isLongVectorEXT(), MI, and TII.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVTypeInst | BaseType, |
| unsigned | NumElements, | ||
| MachineIRBuilder & | MIRBuilder, | ||
| bool | EmitIR ) |
Definition at line 2022 of file SPIRVGlobalRegistry.cpp.
References llvm::FixedVectorType::get(), getOrCreateSPIRVType(), and getTypeForSPIRVType().
Referenced by llvm::buildBoolRegister(), buildVectorPart(), deduceAndAssignTypeForGUnmerge(), deduceIntTypeFromResult(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), llvm::SPIRVTargetLowering::finalizeLowering(), generateAssignInstrs(), llvm::generateGroupInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::genWorkgroupQuery(), getArgSPIRVType(), llvm::getBuiltinCallArguments(), getOrCreateSPIRVTypeByName(), legalizeElementwiseIntrinsic(), propagateSPIRVType(), and registerSpirvTypeForNewInstructions().
| Register SPIRVGlobalRegistry::getOrCreateUndef | ( | MachineInstr & | I, |
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 2168 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 1853 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), MI, and Operands.
Referenced by llvm::getInlineSpirvType().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateVulkanBufferType | ( | MachineIRBuilder & | MIRBuilder, |
| Type * | ElemType, | ||
| SPIRV::StorageClass::StorageClass | SC, | ||
| bool | IsWritable, | ||
| bool | EmitIr = false ) |
Definition at line 1592 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 1634 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 1554 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAPFixedPointInst(), llvm::buildEnqueueKernel(), buildGlobalVariable(), changePointerStorageClass(), deduceGEPType(), deduceResultTypeFromOperands(), llvm::deduceSRetPointeeType(), deduceTypeFromPointerOperand(), llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility(), llvm::generateAFPInst(), llvm::generateAsyncCopy(), getOrCreateConstNullPtr(), getOrCreateSPIRVPointerType(), and validateLifetimeStart().
|
inline |
Definition at line 452 of file SPIRVGlobalRegistry.h.
Referenced by buildGlobalVariable(), llvm::buildNDRange(), llvm::genWorkgroupQuery(), getOrCreateConstNullPtr(), getRegType(), and getScalarOrVectorBitWidth().
| SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | Register | VReg | ) | const |
Definition at line 1579 of file SPIRVGlobalRegistry.cpp.
References assert(), getPointerStorageClass(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicFlagInst(), llvm::buildAtomicLoadInst(), llvm::buildAtomicRMWInst(), llvm::buildAtomicStoreInst(), changePointerStorageClass(), deduceGEPType(), llvm::generateCastToPtrInst(), getOrCreateGlobalVariableWithBinding(), getPointerStorageClass(), and propagateSPIRVType().
| SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1587 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
| const TargetRegisterClass * SPIRVGlobalRegistry::getRegClass | ( | SPIRVTypeInst | SpvType | ) | const |
Definition at line 2199 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::generateCastToPtrInst(), llvm::generateExtInst(), llvm::generateReadImageInst(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), llvm::processInstr(), propagateSPIRVType(), llvm::setRegClassIfNull(), llvm::setRegClassType(), llvm::updateRegType(), and widenSignSensitiveOps().
| LLT SPIRVGlobalRegistry::getRegType | ( | SPIRVTypeInst | SpvType | ) | const |
Definition at line 2226 of file SPIRVGlobalRegistry.cpp.
References getAS(), llvm::ElementCount::getFixed(), llvm::MachineInstr::getOpcode(), getPointerSize(), getScalarOrVectorBitWidth(), getScalarOrVectorComponentCount(), getScalarOrVectorComponentType(), llvm::LLT::pointer(), llvm::LLT::scalar(), and llvm::LLT::scalarOrVector().
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 1380 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 1500 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getPointerSize(), 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 1472 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 1477 of file SPIRVGlobalRegistry.cpp.
References CurMF, llvm::foldImm(), llvm::getImm(), and llvm::isVectorType().
| SPIRVTypeInst SPIRVGlobalRegistry::getScalarOrVectorComponentType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1488 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), getSPIRVTypeForVReg(), isScalarOrVectorOfType(), and llvm::isVectorType().
Referenced by createStackTemporaryForVector(), deduceAndAssignTypeForGUnmerge(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), llvm::SPIRV::demangledArgTypesMatchIR(), llvm::generateImageSizeQueryInst(), getNumScalarOrVectorTotalBitWidth(), getRegClass(), getRegType(), getScalarOrVectorBitWidth(), legalizeElementwiseIntrinsic(), legalizeSpvConstComposite(), legalizeSpvInsertElt(), retrieveScalarOrVectorIntType(), and unmergeToScalars().
| SPIRVTypeInst SPIRVGlobalRegistry::getSPIRVTypeForVReg | ( | Register | VReg, |
| const MachineFunction * | MF = nullptr ) const |
Definition at line 1369 of file SPIRVGlobalRegistry.cpp.
References CurMF.
Referenced by addInstrRequirements(), addPrintfRequirements(), llvm::buildAPFixedPointInst(), llvm::buildAtomicCompareExchangeInst(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildNDRange(), buildOpBitcast(), buildVectorPart(), containsStorageBufferPointer(), createStackTemporaryForVector(), deduceAndAssignTypeForGUnmerge(), deduceGEPType(), deducePointerTypeFromResultRegister(), deduceResultTypeFromOperands(), llvm::deduceSRetPointeeType(), deduceTypeFromPointerOperand(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), llvm::SPIRV::demangledArgTypesMatchIR(), ensureAssignTypeForTypeFolding(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::foldNoOpConvert(), llvm::generateAFPInst(), generateAssignInstrs(), llvm::generateAsyncCopy(), llvm::generateCoopMatrInst(), llvm::generateDotOrFMulInst(), llvm::generateExtInst(), llvm::generateGroupInst(), llvm::generateICarryBorrowInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateIntelSubgroupsInst(), llvm::generateMulExtendedInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::generateSampleImageInst(), llvm::genWorkgroupQuery(), llvm::getBuiltinCallArguments(), getOrCreateConstIntArray(), getPointeeType(), getPointerStorageClass(), getRegType(), getResultType(), getScalarOrVectorComponentCount(), getScalarOrVectorComponentType(), insertBitcasts(), isConcreteSPIRVType(), isScalarOfType(), isScalarOrVectorOfType(), legalizeElementwiseIntrinsic(), legalizeSpvConstComposite(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), llvm::SPIRVMCInstLower::lower(), lowerBitcasts(), llvm::SPIRV::lowerBuiltin(), llvm::processInstr(), propagateSPIRVType(), registerSpirvTypeForNewInstructions(), requiresSpirvType(), llvm::setRegClassIfNull(), typesLogicallyMatch(), unmergeToScalars(), validateAccessChain(), validateFunCallMachineDef(), validateGroupWaitEventsPtr(), validateLifetimeStart(), validatePtrTypes(), validatePtrUnwrapStructField(), and validateVec1Ops().
| Register SPIRVGlobalRegistry::getSPIRVTypeID | ( | SPIRVTypeInst | SpirvType | ) | const |
Definition at line 1200 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::buildKernelInvokeOperands(), llvm::buildKernelQuery(), 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(), getOrCreateUndef(), insertInlineAsmProcess(), llvm::SPIRVTargetLowering::insertLogicalCopyOnResult(), llvm::SPIRVMCInstLower::lower(), llvm::SPIRV::lowerBuiltinType(), and validateVec1Ops().
|
inline |
Definition at line 341 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 231 of file SPIRVGlobalRegistry.h.
Referenced by insertBitcasts().
|
inline |
Definition at line 294 of file SPIRVGlobalRegistry.h.
| void SPIRVGlobalRegistry::invalidateMachineInstr | ( | MachineInstr * | MI | ) |
Definition at line 222 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::dyn_cast(), llvm::SPIRVIRMapping::erase(), F, MI, and TII.
Referenced by invalidateAndEraseMI().
|
inline |
Definition at line 381 of file SPIRVGlobalRegistry.h.
| bool SPIRVGlobalRegistry::isBitcastCompatible | ( | SPIRVTypeInst | Type1, |
| SPIRVTypeInst | Type2 ) const |
Definition at line 1560 of file SPIRVGlobalRegistry.cpp.
References getNumScalarOrVectorTotalBitWidth(), llvm::SPIRVTypeInst::isPointer(), and retrieveScalarOrVectorIntType().
Referenced by buildOpBitcast(), and validatePtrTypes().
| bool SPIRVGlobalRegistry::isResourceType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1458 of file SPIRVGlobalRegistry.cpp.
Definition at line 1438 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), and llvm::generateReadImageInst().
Definition at line 1445 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), getSPIRVTypeForVReg(), and llvm::isVectorType().
Referenced by llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateConvertInst(), llvm::generateDotOrFMulInst(), llvm::generateRelationalInst(), and getScalarOrVectorComponentType().
| bool SPIRVGlobalRegistry::isScalarOrVectorSigned | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1549 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), and retrieveScalarOrVectorIntType().
|
inline |
Definition at line 288 of file SPIRVGlobalRegistry.h.
References F, and llvm::MachineOperand::getParent().
|
inline |
Definition at line 283 of file SPIRVGlobalRegistry.h.
References F.
Definition at line 2333 of file SPIRVGlobalRegistry.cpp.
References llvm::Value::replaceAllUsesWith(), updateIfExistAssignPtrTypeInstr(), and updateIfExistDeducedElementType().
| SPIRVTypeInst SPIRVGlobalRegistry::retrieveScalarOrVectorIntType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1543 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), and getScalarOrVectorComponentType().
Referenced by isBitcastCompatible(), and isScalarOrVectorSigned().
|
inline |
Definition at line 133 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 374 of file SPIRVGlobalRegistry.h.
References CurMF.
Referenced by llvm::SPIRVTargetLowering::finalizeLowering(), and validateFunCallMachineDef().
|
inline |
Definition at line 227 of file SPIRVGlobalRegistry.h.
Referenced by generateAssignInstrs().
| bool SPIRVGlobalRegistry::shouldKeepTypedPtrType | ( | SPIRVTypeInst | ElemType | ) | const |
Definition at line 1525 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), and llvm::isSpecialOpaqueType().
Referenced by shouldUseUntypedPointer().
| bool SPIRVGlobalRegistry::shouldUseUntypedPointer | ( | SPIRVTypeInst | ElemType, |
| const SPIRVSubtarget & | ST ) const |
Definition at line 1535 of file SPIRVGlobalRegistry.cpp.
References shouldKeepTypedPtrType().
Definition at line 2379 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 165 of file SPIRVGlobalRegistry.h.
References findAssignPtrTypeInstr().
Referenced by replaceAllUsesWith().
|
inline |
Definition at line 208 of file SPIRVGlobalRegistry.h.
References findDeducedElementType().
Referenced by replaceAllUsesWith().
| MachineFunction* llvm::SPIRVGlobalRegistry::CurMF |
Definition at line 131 of file SPIRVGlobalRegistry.h.
Referenced by assignIntTypeToVReg(), createConstFP(), createConstInt(), getOrCreateConstFP(), getOrCreateConstInt(), getOrCreateConstNullPtr(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVType(), getOrCreateSPIRVUntypedPointerType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), getResultType(), getScalarOrVectorComponentCount(), getSPIRVTypeForVReg(), getUntypedPtrElementType(), requiresSpirvType(), setCurrentFunc(), setUntypedPtrElementType(), and SPIRVGlobalRegistry().