|
LLVM 23.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 104 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::BitWidth, CurMF, getOrCreateSPIRVFloatType(), I, and TII.
| SPIRVTypeInst SPIRVGlobalRegistry::assignIntTypeToVReg | ( | unsigned | BitWidth, |
| Register | VReg, | ||
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 95 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::BitWidth, CurMF, getOrCreateSPIRVIntegerType(), I, and TII.
Referenced by createConstInt().
| void SPIRVGlobalRegistry::assignSPIRVTypeToVReg | ( | SPIRVTypeInst | Type, |
| Register | VReg, | ||
| const MachineFunction & | MF ) |
Definition at line 130 of file SPIRVGlobalRegistry.cpp.
Referenced by assignFloatTypeToVReg(), assignIntTypeToVReg(), assignTypeToVReg(), assignVectTypeToVReg(), llvm::buildAPFixedPointInst(), llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicRMWInst(), llvm::buildBoolRegister(), buildConstantFP(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildNDRange(), 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(), and llvm::updateRegType().
| SPIRVTypeInst SPIRVGlobalRegistry::assignTypeToVReg | ( | const Type * | Type, |
| Register | VReg, | ||
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::AccessQualifier::AccessQualifier | AQ, | ||
| bool | EmitIR ) |
Definition at line 121 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by buildConstantInt().
| SPIRVTypeInst SPIRVGlobalRegistry::assignVectTypeToVReg | ( | SPIRVTypeInst | BaseType, |
| unsigned | NumElements, | ||
| Register | VReg, | ||
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 112 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), CurMF, getOrCreateSPIRVVectorType(), I, and TII.
Definition at line 2240 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 2220 of file SPIRVGlobalRegistry.cpp.
References addAssignPtrTypeInstr(), allowEmitFakeUse(), B(), llvm::buildIntrWithMD(), llvm::MDNode::get(), llvm::MDString::get(), llvm::MDTuple::get(), llvm::MetadataAsValue::get(), llvm::ValueAsMetadata::getConstant(), llvm::Value::getContext(), llvm::Value::getName(), llvm::getNormalizedPoisonValue(), llvm::Value::getType(), and llvm::Type::isAggregateType().
| Register SPIRVGlobalRegistry::buildConstantFP | ( | APFloat | Val, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRVTypeInst | SpvType = nullptr ) |
Definition at line 526 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), llvm::SPIRVIRMapping::find(), llvm::Type::getFloatTy(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVType(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::Register::isValid(), and llvm::LLT::scalar().
Referenced by llvm::generateReadImageInst().
| Register SPIRVGlobalRegistry::buildConstantInt | ( | uint64_t | Val, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRVTypeInst | SpvType, | ||
| bool | EmitIR, | ||
| bool | ZeroAsNull = true ) |
Definition at line 477 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assert(), assignTypeToVReg(), llvm::BitWidth, llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildInstr(), llvm::cast(), llvm::constrainSelectedInstRegOperands(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), CurMF, llvm::SPIRVIRMapping::find(), llvm::MachineIRBuilder::getMF(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), getTypeForSPIRVType(), llvm::Register::isValid(), llvm::LLT::scalar(), and llvm::MachineRegisterInfo::setRegClass().
Referenced by llvm::buildConstantIntReg32(), llvm::buildNDRange(), llvm::buildSelectInst(), llvm::generateGroupInst(), llvm::genWorkgroupQuery(), llvm::getInlineSpirvType(), and getOrCreateOpTypeCoopMatr().
| Register SPIRVGlobalRegistry::buildConstantSampler | ( | Register | Res, |
| unsigned | AddrMode, | ||
| unsigned | Param, | ||
| unsigned | FilerMode, | ||
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 782 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineIRBuilder::getMRI(), getOrCreateOpTypeSampler(), getSPIRVTypeID(), llvm::Register::isValid(), and llvm::Sampler.
Referenced by llvm::generateReadImageInst(), and llvm::generateSampleImageInst().
| Register SPIRVGlobalRegistry::buildGlobalVariable | ( | Register | Reg, |
| SPIRVTypeInst | BaseType, | ||
| StringRef | Name, | ||
| const GlobalValue * | GV, | ||
| SPIRV::StorageClass::StorageClass | Storage, | ||
| const MachineInstr * | Init, | ||
| bool | IsConst, | ||
| const std::optional< SPIRV::LinkageType::LinkageType > & | LinkageType, | ||
| MachineIRBuilder & | MIRBuilder, | ||
| bool | IsInstSelector ) |
Definition at line 805 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), addGlobalObject(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildCopy(), llvm::MachineIRBuilder::buildInstr(), llvm::buildOpDecorate(), llvm::buildOpName(), llvm::buildOpSpirvDecorations(), llvm::cast(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::GlobalValue::ExternalLinkage, llvm::SPIRVIRMapping::find(), llvm::MachineFunction::front(), 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 2201 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 2007 of file SPIRVGlobalRegistry.cpp.
References assert(), getPointeeType(), getPointerStorageClass(), I, and storageClassRequiresExplictLayout().
Referenced by propagateSPIRVType().
| Register SPIRVGlobalRegistry::createConstFP | ( | const ConstantFP * | CF, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull ) |
Definition at line 372 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::APFloat::bitcastToAPInt(), llvm::BitWidth, llvm::MachineIRBuilder::buildInstr(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::ConstantFP::getValue(), llvm::ConstantFP::getValueAPF(), llvm::APInt::getZExtValue(), I, llvm::APFloat::isPosZero(), llvm::LLT::scalar(), and TII.
Referenced by getOrCreateConstFP().
| Register SPIRVGlobalRegistry::createConstInt | ( | const ConstantInt * | CI, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull ) |
Definition at line 434 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assignIntTypeToVReg(), llvm::BitWidth, llvm::MachineIRBuilder::buildInstr(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::ConstantInt::getValue(), I, llvm::ConstantInt::isZero(), llvm::LLT::scalar(), and TII.
Referenced by getOrCreateConstInt().
Definition at line 146 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and updateIfExistAssignPtrTypeInstr().
Definition at line 207 of file SPIRVGlobalRegistry.h.
Referenced by getDeducedGlobalValueType().
Definition at line 189 of file SPIRVGlobalRegistry.h.
Referenced by getAtomicElemTy(), getDeducedGlobalValueType(), getFunctionPointerElemType(), and updateIfExistDeducedElementType().
Definition at line 165 of file SPIRVGlobalRegistry.h.
Referenced by restoreMutatedType().
|
inline |
Definition at line 135 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 176 of file SPIRVGlobalRegistry.h.
References llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key.
|
inline |
Definition at line 120 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 212 of file SPIRVGlobalRegistry.h.
References llvm::dyn_cast(), findDeducedCompositeType(), findDeducedElementType(), llvm::SPIRV::getOriginalFunctionType(), and llvm::Global.
Referenced by propagateSPIRVType().
|
inline |
Definition at line 279 of file SPIRVGlobalRegistry.h.
References F.
Referenced by validateForwardCalls().
|
inline |
Definition at line 250 of file SPIRVGlobalRegistry.h.
References llvm::Function::end(), and MI.
Referenced by validateForwardCalls().
|
inline |
Definition at line 241 of file SPIRVGlobalRegistry.h.
References F, and llvm::MachineInstr::getParent().
Referenced by validateFunCall().
|
inline |
Definition at line 231 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 125 of file SPIRVGlobalRegistry.h.
| SPIRVTypeInst SPIRVGlobalRegistry::getImageType | ( | const TargetExtType * | ExtensionType, |
| const SPIRV::AccessQualifier::AccessQualifier | Qualifier, | ||
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 1616 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 1460 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 2150 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineRegisterInfo::createVirtualRegister(), D(), llvm::dyn_cast(), llvm::MachineInstrBuilder::getInstr(), llvm::MachineIRBuilder::getMRI(), llvm::MDNode::getNumOperands(), llvm::MachineInstr::insert(), llvm::List, llvm::MDNode::operands(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by addMemoryOperands(), and buildMemAliasingOpDecorate().
| Register SPIRVGlobalRegistry::getOrCreateConsIntVector | ( | uint64_t | Val, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRVTypeInst | SpvType, | ||
| bool | EmitIR ) |
Definition at line 737 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), 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 359 of file SPIRVGlobalRegistry.cpp.
References createConstFP(), CurMF, llvm::SPIRVIRMapping::findMI(), I, MI, and TII.
| Register SPIRVGlobalRegistry::getOrCreateConstInt | ( | const APInt & | Val, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 420 of file SPIRVGlobalRegistry.cpp.
References llvm::cast(), createConstInt(), CurMF, llvm::SPIRVIRMapping::findMI(), getTypeForSPIRVType(), I, MI, and TII.
| Register SPIRVGlobalRegistry::getOrCreateConstInt | ( | uint64_t | Val, |
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII, | ||
| bool | ZeroAsNull = true ) |
Definition at line 412 of file SPIRVGlobalRegistry.cpp.
References getOrCreateConstInt(), getScalarOrVectorBitWidth(), I, and TII.
Referenced by getOrCreateConstInt().
| Register SPIRVGlobalRegistry::getOrCreateConstIntArray | ( | uint64_t | Val, |
| size_t | Num, | ||
| MachineInstr & | I, | ||
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 671 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::cast(), llvm::PoisonValue::get(), llvm::ConstantStruct::getAnon(), llvm::Type::getContext(), llvm::ArrayType::getElementType(), llvm::Type::getInt64Ty(), llvm::ArrayType::getNumElements(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), getScalarOrVectorBitWidth(), getSPIRVTypeForVReg(), getTypeForSPIRVType(), I, llvm::Type::isArrayTy(), and TII.
Referenced by llvm::buildNDRange().
| Register SPIRVGlobalRegistry::getOrCreateConstNullPtr | ( | MachineIRBuilder & | MIRBuilder, |
| SPIRVTypeInst | SpvType ) |
Definition at line 754 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), CurMF, llvm::dyn_cast(), llvm::SPIRVIRMapping::find(), llvm::ConstantTargetNone::get(), getPointeeType(), 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 652 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 631 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 622 of file SPIRVGlobalRegistry.cpp.
References getOrCreateConstVector(), getScalarOrVectorBitWidth(), I, and TII.
Referenced by getOrCreateConstVector().
| Register SPIRVGlobalRegistry::getOrCreateGlobalVariableWithBinding | ( | SPIRVTypeInst | VarType, |
| uint32_t | Set, | ||
| uint32_t | Binding, | ||
| StringRef | Name, | ||
| MachineIRBuilder & | MIRBuilder ) |
Definition at line 917 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 1589 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 1774 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 1744 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 1712 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 1127 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 1696 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 1726 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 1682 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 1557 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 1938 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 1930 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 1909 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 1897 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 1856 of file SPIRVGlobalRegistry.cpp.
References llvm::BitWidth, llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by assignIntTypeToVReg(), llvm::buildConstantIntReg32(), llvm::buildEnqueueKernel(), deduceIntTypeFromResult(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateImageSizeQueryInst(), llvm::genWorkgroupQuery(), getOrCreateOpTypeCoopMatr(), getOrCreatePaddingType(), propagateSPIRVType(), and registerSpirvTypeForNewInstructions().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
| MachineInstr & | I, | ||
| SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1989 of file SPIRVGlobalRegistry.cpp.
References getOrCreateSPIRVPointerType(), and I.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 1996 of file SPIRVGlobalRegistry.cpp.
References assert(), getOrCreateSPIRVType(), and storageClassRequiresExplictLayout().
Referenced by llvm::buildEnqueueKernel(), createNewPtrType(), createStackTemporaryForVector(), deduceGEPType(), deducePointerTypeFromResultRegister(), generateAssignInstrs(), getArgSPIRVType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVTypeByName(), insertBitcasts(), validateLifetimeStart(), and validatePtrUnwrapStructField().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | SPIRVTypeInst | BaseType, |
| MachineIRBuilder & | MIRBuilder, | ||
| SPIRV::StorageClass::StorageClass | SC ) |
Definition at line 2020 of file SPIRVGlobalRegistry.cpp.
References assert(), getOrCreateSPIRVPointerType(), getPointeeType(), getTypeForSPIRVType(), and storageClassRequiresExplictLayout().
|
inline |
Definition at line 310 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVType(), and I.
Referenced by addConstantsToTrack(), assignTypeToVReg(), buildConstantFP(), llvm::buildNDRange(), createNewPtrType(), createStackTemporaryForVector(), llvm::createVirtualRegister(), getArgSPIRVType(), llvm::getCoopMatrType(), getImageType(), llvm::getInlineSpirvType(), getOrCreateSPIRVBoolType(), llvm::getOrCreateSPIRVDeviceEventPointer(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVType(), getOrCreateSPIRVType(), getOrCreateSPIRVTypeByName(), getOrCreateSPIRVVectorType(), getOrCreateVulkanBufferType(), getOrCreateVulkanPushConstantType(), insertInlineAsmProcess(), propagateSPIRVType(), llvm::setRegClassType(), and llvm::updateRegType().
|
inline |
Definition at line 317 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVType().
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateSPIRVType | ( | unsigned | BitWidth, |
| MachineInstr & | I, | ||
| const SPIRVInstrInfo & | TII, | ||
| unsigned | SPIRVOPcode, | ||
| Type * | LLVMTy ) |
Definition at line 1873 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 1811 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 1964 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 1955 of file SPIRVGlobalRegistry.cpp.
References llvm::FixedVectorType::get(), getOrCreateSPIRVType(), and getTypeForSPIRVType().
Referenced by assignVectTypeToVReg(), llvm::buildBoolRegister(), deduceAndAssignTypeForGUnmerge(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateGroupInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::genWorkgroupQuery(), llvm::getBuiltinCallArguments(), getOrCreateSPIRVTypeByName(), propagateSPIRVType(), and registerSpirvTypeForNewInstructions().
| Register SPIRVGlobalRegistry::getOrCreateUndef | ( | MachineInstr & | I, |
| SPIRVTypeInst | SpvType, | ||
| const SPIRVInstrInfo & | TII ) |
Definition at line 2054 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::BuildMI(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::SPIRVIRMapping::find(), llvm::UndefValue::get(), llvm::MachineIRBuilder::getDL(), llvm::MachineIRBuilder::getInsertPt(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineIRBuilder::getMBB(), llvm::MachineInstr::getParent(), getSPIRVTypeID(), getTypeForSPIRVType(), I, llvm::Register::isValid(), llvm::LLT::scalar(), and TII.
| SPIRVTypeInst SPIRVGlobalRegistry::getOrCreateUnknownType | ( | const Type * | Ty, |
| MachineIRBuilder & | MIRBuilder, | ||
| unsigned | Opcode, | ||
| const ArrayRef< MCOperand > | Operands ) |
Definition at line 1786 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 1527 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 1568 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 1483 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 1489 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), getPointeeType(), and getSPIRVTypeForVReg().
|
inline |
Definition at line 421 of file SPIRVGlobalRegistry.h.
Referenced by llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildNDRange(), llvm::genWorkgroupQuery(), getOrCreateConstNullPtr(), and getRegType().
| SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | Register | VReg | ) | const |
Definition at line 1514 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 1522 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
| const TargetRegisterClass * SPIRVGlobalRegistry::getRegClass | ( | SPIRVTypeInst | SpvType | ) | const |
Definition at line 2088 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(), and llvm::updateRegType().
| LLT SPIRVGlobalRegistry::getRegType | ( | SPIRVTypeInst | SpvType | ) | const |
Definition at line 2114 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 1332 of file SPIRVGlobalRegistry.cpp.
References CurMF, llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), and llvm::getVRegDef().
Referenced by llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility().
| unsigned SPIRVGlobalRegistry::getScalarOrVectorBitWidth | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1449 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getScalarOrVectorComponentType(), and llvm_unreachable.
Referenced by buildConstantFP(), buildConstantInt(), llvm::buildSelectInst(), createConstFP(), createConstInt(), llvm::generateBuiltinVar(), llvm::generateWaveInst(), getOrCreateConsIntVector(), getOrCreateConstInt(), getOrCreateConstIntArray(), getOrCreateConstVector(), getOrCreateConstVector(), getOrCreateConstVector(), getRegType(), and propagateSPIRVType().
Definition at line 1422 of file SPIRVGlobalRegistry.cpp.
References getScalarOrVectorComponentCount(), and getSPIRVTypeForVReg().
Referenced by llvm::buildBoolRegister(), 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 1427 of file SPIRVGlobalRegistry.cpp.
References llvm::getImm().
| SPIRVTypeInst SPIRVGlobalRegistry::getScalarOrVectorComponentType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1436 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), getSPIRVTypeForVReg(), and isScalarOrVectorOfType().
Referenced by createStackTemporaryForVector(), deduceAndAssignTypeForGUnmerge(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), llvm::generateImageSizeQueryInst(), getNumScalarOrVectorTotalBitWidth(), getRegClass(), getRegType(), getScalarOrVectorBitWidth(), legalizeSpvConstComposite(), legalizeSpvInsertElt(), and retrieveScalarOrVectorIntType().
| SPIRVTypeInst SPIRVGlobalRegistry::getSPIRVTypeForVReg | ( | Register | VReg, |
| const MachineFunction * | MF = nullptr ) const |
Definition at line 1321 of file SPIRVGlobalRegistry.cpp.
References CurMF.
Referenced by llvm::buildAPFixedPointInst(), llvm::buildAtomicCompareExchangeInst(), buildGlobalVariable(), llvm::buildNDRange(), buildOpBitcast(), createStackTemporaryForVector(), deduceAndAssignTypeForGUnmerge(), deduceGEPType(), deducePointerTypeFromResultRegister(), deduceResultTypeFromOperands(), deduceTypeFromPointerOperand(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), ensureAssignTypeForTypeFolding(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateAFPInst(), generateAssignInstrs(), llvm::generateCoopMatrInst(), llvm::generateDotOrFMulInst(), llvm::generateGroupInst(), llvm::generateICarryBorrowInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateIntelSubgroupsInst(), llvm::generateMulExtendedInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::generateSampleImageInst(), llvm::genWorkgroupQuery(), llvm::getBuiltinCallArguments(), getOrCreateConstIntArray(), getPointeeType(), getPointeeTypeOp(), getPointerStorageClass(), getResultType(), getScalarOrVectorComponentCount(), getScalarOrVectorComponentType(), hasSPIRVTypeForVReg(), insertBitcasts(), isScalarOfType(), isScalarOrVectorOfType(), legalizeSpvConstComposite(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), lowerBitcasts(), llvm::SPIRV::lowerBuiltin(), llvm::processInstr(), propagateSPIRVType(), registerSpirvTypeForNewInstructions(), requiresSpirvType(), llvm::setRegClassIfNull(), typesLogicallyMatch(), validateAccessChain(), validateFunCallMachineDef(), validateGroupWaitEventsPtr(), validateLifetimeStart(), validatePtrTypes(), and validatePtrUnwrapStructField().
| Register SPIRVGlobalRegistry::getSPIRVTypeID | ( | SPIRVTypeInst | SpirvType | ) | const |
Definition at line 1159 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(), 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(), and llvm::SPIRV::lowerBuiltinType().
|
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(), validateFunCallMachineDef(), and validatePtrTypes().
|
inline |
Definition at line 270 of file SPIRVGlobalRegistry.h.
Definition at line 356 of file SPIRVGlobalRegistry.h.
References getSPIRVTypeForVReg().
| void SPIRVGlobalRegistry::invalidateMachineInstr | ( | MachineInstr * | MI | ) |
Definition at line 233 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::dyn_cast(), llvm::SPIRVIRMapping::erase(), F, MI, and TII.
Referenced by 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 1494 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 1408 of file SPIRVGlobalRegistry.cpp.
Definition at line 1387 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), and llvm::generateReadImageInst().
Definition at line 1394 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 1478 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 2213 of file SPIRVGlobalRegistry.cpp.
References llvm::Value::replaceAllUsesWith(), updateIfExistAssignPtrTypeInstr(), and updateIfExistDeducedElementType().
| SPIRVTypeInst SPIRVGlobalRegistry::retrieveScalarOrVectorIntType | ( | SPIRVTypeInst | Type | ) | const |
Definition at line 1472 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 2259 of file SPIRVGlobalRegistry.cpp.
References addDeducedElementType(), llvm::buildMD(), llvm::cast(), getIntrinsicID(), llvm::Value::getType(), and llvm::CallBase::setArgOperand().
Referenced by buildAssignPtr().
|
inline |
Definition at line 151 of file SPIRVGlobalRegistry.h.
References findAssignPtrTypeInstr().
Referenced by replaceAllUsesWith().
|
inline |
Definition at line 194 of file SPIRVGlobalRegistry.h.
References findDeducedElementType().
Referenced by replaceAllUsesWith().
| MachineFunction* llvm::SPIRVGlobalRegistry::CurMF |
Definition at line 117 of file SPIRVGlobalRegistry.h.
Referenced by assignFloatTypeToVReg(), assignIntTypeToVReg(), assignVectTypeToVReg(), buildConstantInt(), buildGlobalVariable(), createConstFP(), createConstInt(), getOrCreateConstFP(), getOrCreateConstInt(), getOrCreateConstNullPtr(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), getResultType(), getSPIRVTypeForVReg(), requiresSpirvType(), setCurrentFunc(), and SPIRVGlobalRegistry().