LLVM 22.0.0git
|
#include "Target/SPIRV/SPIRVGlobalRegistry.h"
Public Attributes | |
MachineFunction * | CurMF |
Definition at line 31 of file SPIRVGlobalRegistry.h.
SPIRVGlobalRegistry::SPIRVGlobalRegistry | ( | unsigned | PointerSize | ) |
Definition at line 89 of file SPIRVGlobalRegistry.cpp.
|
inline |
Definition at line 138 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and buildAssignType().
Definition at line 199 of file SPIRVGlobalRegistry.h.
Definition at line 183 of file SPIRVGlobalRegistry.h.
Referenced by buildAssignPtr(), and updateAssignType().
|
inline |
Definition at line 267 of file SPIRVGlobalRegistry.h.
References F, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), and MI.
Referenced by llvm::SPIRVTargetLowering::finalizeLowering().
|
inline |
Definition at line 118 of file SPIRVGlobalRegistry.h.
Referenced by addConstantsToTrack(), buildGlobalVariable(), and llvm::SPIRVCallLowering::lowerFormalArguments().
Definition at line 159 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 127 of file SPIRVGlobalRegistry.h.
Referenced by llvm::SPIRVCallLowering::lowerFormalArguments().
|
inline |
Definition at line 168 of file SPIRVGlobalRegistry.h.
Referenced by generateAssignInstrs().
SPIRVType * SPIRVGlobalRegistry::assignFloatTypeToVReg | ( | unsigned | BitWidth, |
Register | VReg, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 102 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::BitWidth, CurMF, getOrCreateSPIRVFloatType(), I, and TII.
Referenced by createConstFP().
SPIRVType * SPIRVGlobalRegistry::assignIntTypeToVReg | ( | unsigned | BitWidth, |
Register | VReg, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 92 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::BitWidth, CurMF, getOrCreateSPIRVIntegerType(), I, and TII.
Referenced by createConstInt().
void SPIRVGlobalRegistry::assignSPIRVTypeToVReg | ( | SPIRVType * | Type, |
Register | VReg, | ||
const MachineFunction & | MF | ||
) |
Definition at line 128 of file SPIRVGlobalRegistry.cpp.
Referenced by assignFloatTypeToVReg(), assignIntTypeToVReg(), assignTypeToVReg(), assignVectTypeToVReg(), llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicRMWInst(), llvm::buildBoolRegister(), llvm::buildBuiltinVariableLoad(), buildConstantFP(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildNDRange(), convertPtrToInt(), llvm::createVirtualRegister(), llvm::generateGroupInst(), llvm::generateICarryBorrowInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), getOrCreateConstNullPtr(), getOrCreateUndef(), llvm::insertAssignInstr(), insertBitcasts(), insertInlineAsmProcess(), llvm::SPIRVCallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerFormalArguments(), llvm::processInstr(), propagateSPIRVType(), and llvm::setRegClassType().
SPIRVType * SPIRVGlobalRegistry::assignTypeToVReg | ( | const Type * | Type, |
Register | VReg, | ||
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::AccessQualifier::AccessQualifier | AQ, | ||
bool | EmitIR | ||
) |
Definition at line 119 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by buildConstantInt(), and llvm::SPIRVCallLowering::lowerCall().
SPIRVType * SPIRVGlobalRegistry::assignVectTypeToVReg | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
Register | VReg, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 110 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), CurMF, getOrCreateSPIRVVectorType(), I, and TII.
Definition at line 2030 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().
Definition at line 2010 of file SPIRVGlobalRegistry.cpp.
References addAssignPtrTypeInstr(), allowEmitFakeUse(), B, llvm::buildIntrWithMD(), llvm::MDNode::get(), llvm::MDTuple::get(), llvm::MetadataAsValue::get(), llvm::MDString::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, | ||
SPIRVType * | SpvType = nullptr |
||
) |
Definition at line 435 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::addNumImm(), 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, | ||
SPIRVType * | SpvType, | ||
bool | EmitIR, | ||
bool | ZeroAsNull = true |
||
) |
Definition at line 389 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::constrainSelectedInstRegOperands(), CurMF, llvm::SPIRVIRMapping::find(), llvm::MachineIRBuilder::getMF(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), llvm::Register::isValid(), MRI, and llvm::LLT::scalar().
Referenced by llvm::buildConstantIntReg32(), llvm::buildNDRange(), llvm::buildSelectInst(), llvm::generateGroupInst(), llvm::genWorkgroupQuery(), llvm::getInlineSpirvType(), and getOrCreateOpTypeCoopMatr().
Register SPIRVGlobalRegistry::buildConstantSampler | ( | Register | Res, |
unsigned | AddrMode, | ||
unsigned | Param, | ||
unsigned | FilerMode, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 677 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineIRBuilder::getMRI(), getOrCreateOpTypeSampler(), getSPIRVTypeID(), and llvm::Register::isValid().
Referenced by llvm::generateReadImageInst(), and llvm::generateSampleImageInst().
Register SPIRVGlobalRegistry::buildGlobalVariable | ( | Register | Reg, |
SPIRVType * | BaseType, | ||
StringRef | Name, | ||
const GlobalValue * | GV, | ||
SPIRV::StorageClass::StorageClass | Storage, | ||
const MachineInstr * | Init, | ||
bool | IsConst, | ||
bool | HasLinkageTy, | ||
SPIRV::LinkageType::LinkageType | LinkageType, | ||
MachineIRBuilder & | MIRBuilder, | ||
bool | IsInstSelector | ||
) |
Definition at line 700 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::constrainSelectedInstRegOperands(), CurMF, llvm::GlobalValue::ExternalLinkage, llvm::SPIRVIRMapping::find(), llvm::GlobalVariable::getAlign(), llvm::MachineFunction::getFunction(), llvm::GlobalObject::getMetadata(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::Value::getName(), llvm::MachineInstr::getOperand(), llvm::GlobalValue::getParent(), getPointerSize(), llvm::MachineOperand::getReg(), llvm::getSpirvBuiltInIdByName(), getSPIRVTypeForVReg(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), llvm::Value::hasName(), MRI, Name, llvm::LLT::pointer(), llvm::Align::value(), and llvm::MaybeAlign::valueOrOne().
Referenced by llvm::buildBuiltinVariableLoad(), and getOrCreateGlobalVariableWithBinding().
void SPIRVGlobalRegistry::buildMemAliasingOpDecorate | ( | Register | Reg, |
MachineIRBuilder & | MIRBuilder, | ||
uint32_t | Dec, | ||
const MDNode * | GVarMD | ||
) |
Definition at line 1991 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(), and llvm::SPIRVCallLowering::lowerCall().
SPIRVType * SPIRVGlobalRegistry::changePointerStorageClass | ( | SPIRVType * | PtrType, |
SPIRV::StorageClass::StorageClass | SC, | ||
MachineInstr & | I | ||
) |
Definition at line 1798 of file SPIRVGlobalRegistry.cpp.
References assert(), getPointeeType(), getPointerStorageClass(), I, and storageClassRequiresExplictLayout().
Referenced by propagateSPIRVType().
Register SPIRVGlobalRegistry::createConstFP | ( | const ConstantFP * | CF, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull | ||
) |
Definition at line 296 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), assignFloatTypeToVReg(), llvm::BitWidth, llvm::constrainSelectedInstRegOperands(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), CurMF, llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), llvm::MachineFunction::getRegInfo(), getScalarOrVectorBitWidth(), llvm::MachineFunction::getSubtarget(), llvm::ConstantFP::getValue(), I, llvm::APFloat::isPosZero(), llvm::LLT::scalar(), llvm::MachineRegisterInfo::setRegClass(), and TII.
Referenced by getOrCreateConstFP().
Register SPIRVGlobalRegistry::createConstInt | ( | const ConstantInt * | CI, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull | ||
) |
Definition at line 347 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assignIntTypeToVReg(), llvm::BitWidth, llvm::MachineIRBuilder::buildInstr(), llvm::constrainSelectedInstRegOperands(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), CurMF, llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), llvm::MachineFunction::getRegInfo(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), I, llvm::ConstantInt::isZero(), llvm::LLT::scalar(), llvm::MachineRegisterInfo::setRegClass(), and TII.
Referenced by getOrCreateConstInt().
Definition at line 142 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by buildAssignPtr(), and updateIfExistAssignPtrTypeInstr().
Definition at line 203 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by getDeducedGlobalValueType().
Definition at line 185 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by getAtomicElemTy(), getDeducedGlobalValueType(), getFunctionPointerElemType(), llvm::SPIRVCallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerFormalArguments(), and updateIfExistDeducedElementType().
Definition at line 161 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by restoreMutatedType().
|
inline |
Definition at line 131 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by llvm::SPIRVCallLowering::lowerCall().
|
inline |
Definition at line 172 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and Name.
|
inline |
Definition at line 116 of file SPIRVGlobalRegistry.h.
|
inline |
Definition at line 208 of file SPIRVGlobalRegistry.h.
References findDeducedCompositeType(), findDeducedElementType(), and llvm::Global.
Referenced by propagateSPIRVType().
|
inline |
Definition at line 273 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), F, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by validateForwardCalls().
|
inline |
Definition at line 244 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and MI.
Referenced by validateForwardCalls().
|
inline |
Definition at line 235 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), F, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by validateFunCall().
|
inline |
Definition at line 225 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
|
inline |
Definition at line 121 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
SPIRVType * SPIRVGlobalRegistry::getImageType | ( | const TargetExtType * | ExtensionType, |
const SPIRV::AccessQualifier::AccessQualifier | Qualifier, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 1417 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().
Definition at line 1292 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by isBitcastCompatible().
MachineInstr * SPIRVGlobalRegistry::getOrAddMemAliasingINTELInst | ( | MachineIRBuilder & | MIRBuilder, |
const MDNode * | AliasingListMD | ||
) |
Definition at line 1940 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), D, llvm::MachineInstrBuilder::getInstr(), llvm::MachineIRBuilder::getMRI(), llvm::MDNode::getNumOperands(), 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, | ||
SPIRVType * | SpvType, | ||
bool | EmitIR | ||
) |
Definition at line 632 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), getScalarOrVectorBitWidth(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), and llvm::Type::isVectorTy().
Referenced by llvm::buildSelectInst().
Register SPIRVGlobalRegistry::getOrCreateConstFP | ( | APFloat | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull = true |
||
) |
Definition at line 283 of file SPIRVGlobalRegistry.cpp.
References createConstFP(), CurMF, llvm::SPIRVIRMapping::findMI(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), I, MI, and TII.
Register SPIRVGlobalRegistry::getOrCreateConstInt | ( | uint64_t | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull = true |
||
) |
Definition at line 334 of file SPIRVGlobalRegistry.cpp.
References createConstInt(), CurMF, llvm::SPIRVIRMapping::findMI(), getTypeForSPIRVType(), I, MI, and TII.
Register SPIRVGlobalRegistry::getOrCreateConstIntArray | ( | uint64_t | Val, |
size_t | Num, | ||
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 568 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::PoisonValue::get(), llvm::ConstantStruct::getAnon(), llvm::ArrayType::getElementType(), 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, |
SPIRVType * | SpvType | ||
) |
Definition at line 649 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), assert(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), CurMF, llvm::SPIRVIRMapping::find(), llvm::ConstantTargetNone::get(), getPointeeType(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), llvm::getTypedPointerWrapper(), getTypeForSPIRVType(), llvm::Register::isValid(), llvm::LLT::pointer(), llvm::MachineRegisterInfo::setRegClass(), and typeToAddressSpace().
Referenced by llvm::buildEnqueueKernel().
Register SPIRVGlobalRegistry::getOrCreateConstVector | ( | APFloat | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull = true |
||
) |
Definition at line 549 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), getScalarOrVectorBitWidth(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), I, llvm::Type::isFloatingPointTy(), llvm::Type::isVectorTy(), and TII.
Register SPIRVGlobalRegistry::getOrCreateConstVector | ( | uint64_t | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII, | ||
bool | ZeroAsNull = true |
||
) |
Definition at line 530 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), getScalarOrVectorBitWidth(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), I, llvm::Type::isIntegerTy(), llvm::Type::isVectorTy(), and TII.
Register SPIRVGlobalRegistry::getOrCreateGlobalVariableWithBinding | ( | const SPIRVType * | VarType, |
uint32_t | Set, | ||
uint32_t | Binding, | ||
StringRef | Name, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 805 of file SPIRVGlobalRegistry.cpp.
References Binding, buildGlobalVariable(), llvm::buildOpDecorate(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineIRBuilder::getMRI(), getPointerStorageClass(), and Name.
SPIRVType * SPIRVGlobalRegistry::getOrCreateLayoutType | ( | MachineIRBuilder & | MIRBuilder, |
const TargetExtType * | T, | ||
bool | EmitIr = false |
||
) |
Definition at line 1390 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), assert(), llvm::buildOpMemberDecorate(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), llvm::SPIRV::handle(), I, and MI.
Referenced by llvm::getLayoutType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeByOpcode | ( | const Type * | Ty, |
MachineIRBuilder & | MIRBuilder, | ||
unsigned | Opcode | ||
) |
Definition at line 1573 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), and MI.
Referenced by llvm::getNonParameterizedType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeCoopMatr | ( | MachineIRBuilder & | MIRBuilder, |
const TargetExtType * | ExtensionType, | ||
const SPIRVType * | ElemType, | ||
uint32_t | Scope, | ||
uint32_t | Rows, | ||
uint32_t | Columns, | ||
uint32_t | Use, | ||
bool | EmitIR | ||
) |
Definition at line 1544 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), buildConstantInt(), llvm::MachineIRBuilder::buildInstr(), 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().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeDeviceEvent | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 1512 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), llvm::SPIRV::irhandle_event(), and MI.
Referenced by llvm::SPIRV::lowerBuiltinType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeFunctionWithArgs | ( | const Type * | Ty, |
SPIRVType * | RetType, | ||
const SmallVectorImpl< SPIRVType * > & | ArgTypes, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 973 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), and MI.
Referenced by insertInlineAsmProcess(), and llvm::SPIRVCallLowering::lowerFormalArguments().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypePipe | ( | MachineIRBuilder & | MIRBuilder, |
SPIRV::AccessQualifier::AccessQualifier | AccQual | ||
) |
Definition at line 1496 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), llvm::SPIRV::irhandle_pipe(), and MI.
Referenced by llvm::getPipeType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeSampledImage | ( | SPIRVType * | ImageType, |
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 1526 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), llvm::MachineRegisterInfo::getVRegDef(), llvm::SPIRV::irhandle_sampled_image(), and MI.
Referenced by llvm::generateReadImageInst(), llvm::generateSampleImageInst(), and llvm::getSampledImageType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeSampler | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 1482 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), llvm::SPIRV::irhandle_sampler(), and MI.
Referenced by buildConstantSampler(), and llvm::getSamplerType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVBoolType | ( | MachineInstr & | I, |
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1733 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVIRMapping::findMI(), llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineIRBuilder::getDL(), llvm::MachineBasicBlock::getFirstNonPHI(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getInsertPt(), llvm::MachineIRBuilder::getMBB(), llvm::MachineFunction::getRegInfo(), I, MI, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVBoolType | ( | MachineIRBuilder & | MIRBuilder, |
bool | EmitIR | ||
) |
Definition at line 1725 of file SPIRVGlobalRegistry.cpp.
References llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by llvm::buildBoolRegister(), llvm::generateGroupInst(), and llvm::genWorkgroupQuery().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVFloatType | ( | unsigned | BitWidth, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1704 of file SPIRVGlobalRegistry.cpp.
References llvm::BitWidth, CurMF, llvm::Function::getContext(), llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::MachineFunction::getFunction(), llvm::Type::getHalfTy(), getOrCreateSPIRVType(), I, llvm_unreachable, and TII.
Referenced by assignFloatTypeToVReg().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1692 of file SPIRVGlobalRegistry.cpp.
References llvm::BitWidth, CurMF, llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), getOrCreateSPIRVType(), I, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 1656 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::SPIRVTargetLowering::finalizeLowering(), llvm::generateImageSizeQueryInst(), llvm::genWorkgroupQuery(), getOrCreateOpTypeCoopMatr(), and propagateSPIRVType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
MachineInstr & | I, | ||
SPIRV::StorageClass::StorageClass | SC | ||
) |
Definition at line 1780 of file SPIRVGlobalRegistry.cpp.
References getOrCreateSPIRVPointerType(), and I.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | const Type * | BaseType, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::StorageClass::StorageClass | SC | ||
) |
Definition at line 1787 of file SPIRVGlobalRegistry.cpp.
References assert(), getOrCreateSPIRVType(), and storageClassRequiresExplictLayout().
Referenced by llvm::buildBuiltinVariableLoad(), llvm::buildEnqueueKernel(), createNewPtrType(), generateAssignInstrs(), getArgSPIRVType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVTypeByName(), insertBitcasts(), validateLifetimeStart(), and validatePtrUnwrapStructField().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | SPIRVType * | BaseType, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::StorageClass::StorageClass | SC | ||
) |
Definition at line 1810 of file SPIRVGlobalRegistry.cpp.
References assert(), getOrCreateSPIRVPointerType(), getPointeeType(), getTypeForSPIRVType(), and storageClassRequiresExplictLayout().
|
inline |
Definition at line 302 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVType(), and I.
Referenced by addConstantsToTrack(), assignTypeToVReg(), buildConstantFP(), llvm::buildNDRange(), createNewPtrType(), llvm::createVirtualRegister(), getArgSPIRVType(), llvm::getCoopMatrType(), getImageType(), llvm::getInlineSpirvType(), getOrCreateSPIRVBoolType(), llvm::getOrCreateSPIRVDeviceEventPointer(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVType(), getOrCreateSPIRVTypeByName(), getOrCreateSPIRVVectorType(), getOrCreateVulkanBufferType(), llvm::insertAssignInstr(), insertInlineAsmProcess(), llvm::SPIRVLegalizerInfo::legalizeCustom(), llvm::SPIRVCallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerFormalArguments(), propagateSPIRVType(), and llvm::setRegClassType().
|
inline |
Definition at line 309 of file SPIRVGlobalRegistry.h.
References getOrCreateSPIRVType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVType | ( | unsigned | BitWidth, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII, | ||
unsigned | SPIRVOPcode, | ||
Type * | LLVMTy | ||
) |
Definition at line 1671 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(), llvm::MachineFunction::getRegInfo(), I, MI, and TII.
SPIRVType * 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 1610 of file SPIRVGlobalRegistry.cpp.
References llvm::StringRef::consume_back(), llvm::StringRef::consume_front(), llvm::StringRef::find(), llvm::StringRef::getAsInteger(), llvm::MachineIRBuilder::getContext(), llvm::Function::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().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1759 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVIRMapping::findMI(), llvm::FixedVectorType::get(), llvm::MachineIRBuilder::getDL(), llvm::MachineIRBuilder::getInsertPt(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineIRBuilder::getMBB(), llvm::MachineInstr::getParent(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), getTypeForSPIRVType(), MI, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
MachineIRBuilder & | MIRBuilder, | ||
bool | EmitIR | ||
) |
Definition at line 1750 of file SPIRVGlobalRegistry.cpp.
References llvm::FixedVectorType::get(), getOrCreateSPIRVType(), and getTypeForSPIRVType().
Referenced by assignVectTypeToVReg(), llvm::buildBoolRegister(), llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateGroupInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), getOrCreateSPIRVTypeByName(), and propagateSPIRVType().
Register SPIRVGlobalRegistry::getOrCreateUndef | ( | MachineInstr & | I, |
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1844 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::BuildMI(), llvm::constrainSelectedInstRegOperands(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), 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(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), llvm::Register::isValid(), llvm::LLT::scalar(), llvm::MachineRegisterInfo::setRegClass(), and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateUnknownType | ( | const Type * | Ty, |
MachineIRBuilder & | MIRBuilder, | ||
unsigned | Opcode, | ||
const ArrayRef< MCOperand > | Operands | ||
) |
Definition at line 1585 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), if(), MI, and Operands.
Referenced by llvm::getInlineSpirvType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateVulkanBufferType | ( | MachineIRBuilder & | MIRBuilder, |
Type * | ElemType, | ||
SPIRV::StorageClass::StorageClass | SC, | ||
bool | IsWritable, | ||
bool | EmitIr = false |
||
) |
Definition at line 1362 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::add(), llvm::buildOpDecorate(), llvm::buildOpMemberDecorate(), llvm::StructType::create(), llvm::SPIRVIRMapping::findMI(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVType(), llvm::SPIRV::irhandle_vkbuffer(), MI, and storageClassRequiresExplictLayout().
Referenced by llvm::getVulkanBufferType().
Definition at line 1318 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and getSPIRVTypeForVReg().
Referenced by changePointerStorageClass(), llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility(), llvm::generateICarryBorrowInst(), getOrCreateConstNullPtr(), getOrCreateSPIRVPointerType(), getPointeeTypeOp(), and validateLifetimeStart().
Definition at line 1324 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), getPointeeType(), and getSPIRVTypeForVReg().
|
inline |
Definition at line 414 of file SPIRVGlobalRegistry.h.
Referenced by llvm::buildBuiltinVariableLoad(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildNDRange(), llvm::genWorkgroupQuery(), getRegType(), and llvm::SPIRVCallLowering::lowerCall().
SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | const SPIRVType * | Type | ) | const |
Definition at line 1357 of file SPIRVGlobalRegistry.cpp.
SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | Register | VReg | ) | const |
Definition at line 1349 of file SPIRVGlobalRegistry.cpp.
References assert(), getPointerStorageClass(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicLoadInst(), llvm::buildAtomicStoreInst(), llvm::buildMemSemanticsReg(), changePointerStorageClass(), llvm::generateCastToPtrInst(), getOrCreateGlobalVariableWithBinding(), getPointerStorageClass(), and propagateSPIRVType().
const TargetRegisterClass * SPIRVGlobalRegistry::getRegClass | ( | SPIRVType * | SpvType | ) | const |
Definition at line 1877 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicRMWInst(), llvm::buildBoolRegister(), buildOpBitcast(), convertPtrToInt(), llvm::createVirtualRegister(), llvm::generateReadImageInst(), llvm::insertAssignInstr(), llvm::SPIRVCallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerFormalArguments(), llvm::processInstr(), propagateSPIRVType(), llvm::setRegClassIfNull(), and llvm::setRegClassType().
Definition at line 1903 of file SPIRVGlobalRegistry.cpp.
References llvm::LLT::fixed_vector(), getAS(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getPointerSize(), llvm::MachineOperand::getReg(), getScalarOrVectorBitWidth(), getSPIRVTypeForVReg(), llvm::LLT::pointer(), and llvm::LLT::scalar().
Referenced by llvm::createVirtualRegister(), llvm::generateReadImageInst(), llvm::insertAssignInstr(), llvm::SPIRVCallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerFormalArguments(), llvm::processInstr(), and llvm::setRegClassType().
SPIRVType * SPIRVGlobalRegistry::getResultType | ( | Register | VReg, |
MachineFunction * | MF = nullptr |
||
) |
Definition at line 1161 of file SPIRVGlobalRegistry.cpp.
References CurMF, llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), and llvm::getVRegDef().
Referenced by llvm::SPIRVTargetLowering::enforcePtrTypeCompatibility().
Definition at line 1278 of file SPIRVGlobalRegistry.cpp.
References assert(), getSPIRVTypeForVReg(), and llvm_unreachable.
Referenced by buildConstantFP(), buildConstantInt(), llvm::buildSelectInst(), createConstFP(), createConstInt(), llvm::generateBuiltinVar(), llvm::generateWaveInst(), getOrCreateConsIntVector(), getOrCreateConstIntArray(), getOrCreateConstVector(), getRegType(), and propagateSPIRVType().
Definition at line 1246 of file SPIRVGlobalRegistry.cpp.
References getScalarOrVectorComponentCount(), and getSPIRVTypeForVReg().
Referenced by llvm::generateConvertInst(), getScalarOrVectorComponentCount(), and propagateSPIRVType().
Definition at line 1251 of file SPIRVGlobalRegistry.cpp.
Definition at line 1260 of file SPIRVGlobalRegistry.cpp.
References getScalarOrVectorComponentType(), and getSPIRVTypeForVReg().
Referenced by getScalarOrVectorComponentType().
Definition at line 1265 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), getSPIRVTypeForVReg(), and isScalarOrVectorOfType().
SPIRVType * SPIRVGlobalRegistry::getSPIRVTypeForVReg | ( | Register | VReg, |
const MachineFunction * | MF = nullptr |
||
) | const |
Definition at line 1150 of file SPIRVGlobalRegistry.cpp.
References CurMF.
Referenced by llvm::buildAtomicCompareExchangeInst(), buildGlobalVariable(), llvm::buildNDRange(), buildOpBitcast(), llvm::SPIRVTargetLowering::finalizeLowering(), generateAssignInstrs(), llvm::generateCoopMatrInst(), llvm::generateDotOrFMulInst(), llvm::generateGroupInst(), llvm::generateICarryBorrowInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateIntelSubgroupsInst(), llvm::generateReadImageInst(), llvm::generateSampleImageInst(), llvm::genWorkgroupQuery(), getNumScalarOrVectorTotalBitWidth(), getOrCreateConstIntArray(), getPointeeType(), getPointeeTypeOp(), getPointerStorageClass(), getRegClass(), getRegType(), getResultType(), getScalarOrVectorBitWidth(), getScalarOrVectorComponentCount(), getScalarOrVectorComponentType(), hasSPIRVTypeForVReg(), insertBitcasts(), isScalarOfType(), isScalarOrVectorOfType(), llvm::SPIRVLegalizerInfo::legalizeCustom(), llvm::SPIRV::lowerBuiltin(), llvm::SPIRVCallLowering::lowerCall(), llvm::processInstr(), processNewInstrs(), propagateSPIRVType(), retrieveScalarOrVectorIntType(), llvm::setRegClassIfNull(), typesLogicallyMatch(), validateAccessChain(), validateFunCallMachineDef(), validateGroupWaitEventsPtr(), validateLifetimeStart(), validatePtrTypes(), and validatePtrUnwrapStructField().
Definition at line 999 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::buildAtomicCompareExchangeInst(), llvm::buildAtomicFlagInst(), llvm::buildAtomicFloatingRMWInst(), llvm::buildAtomicLoadInst(), llvm::buildAtomicRMWInst(), llvm::buildBindlessImageINTELInst(), buildConstantFP(), buildConstantInt(), buildConstantSampler(), llvm::buildEnqueueKernel(), llvm::buildExtendedBitOpsInst(), buildGlobalVariable(), llvm::buildNDRange(), buildOpBitcast(), llvm::buildTernaryBitwiseFunctionINTELInst(), createConstInt(), doInsertBitcast(), llvm::generateAsyncCopy(), llvm::generateAtomicInst(), llvm::generateCastToPtrInst(), llvm::generateConstructInst(), llvm::generateConvertInst(), llvm::generateCoopMatrInst(), llvm::generateDotOrFMulInst(), llvm::generateEnqueueInst(), llvm::generateExtInst(), llvm::generateGroupInst(), llvm::generateGroupUniformInst(), llvm::generateICarryBorrowInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateIntelSubgroupsInst(), llvm::generateKernelClockInst(), llvm::generateLoadStoreInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::generateSampleImageInst(), llvm::generateSpecConstantInst(), llvm::generateVectorLoadStoreInst(), llvm::getInlineSpirvType(), getOrCreateConstNullPtr(), getOrCreateOpTypeCoopMatr(), getOrCreateOpTypeSampledImage(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), llvm::insertAssignInstr(), insertInlineAsmProcess(), llvm::SPIRVTargetLowering::insertLogicalCopyOnResult(), llvm::SPIRV::lowerBuiltinType(), llvm::SPIRVCallLowering::lowerCall(), and llvm::SPIRVCallLowering::lowerFormalArguments().
Definition at line 316 of file SPIRVGlobalRegistry.h.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by llvm::buildBoolRegister(), buildConstantInt(), buildGlobalVariable(), fixFunctionTypeIfPtrArgs(), generateAssignInstrs(), getOrCreateConsIntVector(), getOrCreateConstInt(), getOrCreateConstIntArray(), getOrCreateConstNullPtr(), getOrCreateConstVector(), getOrCreateOpTypeCoopMatr(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), validateFunCallMachineDef(), and validatePtrTypes().
|
inline |
Definition at line 264 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::empty().
Definition at line 348 of file SPIRVGlobalRegistry.h.
References getSPIRVTypeForVReg().
void SPIRVGlobalRegistry::invalidateMachineInstr | ( | MachineInstr * | MI | ) |
Definition at line 213 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVIRMapping::erase(), and MI.
Referenced by addConstantsToTrack(), cleanupHelperInstructions(), foldConstantsIntoIntrinsics(), generateAssignInstrs(), insertBitcasts(), insertInlineAsmProcess(), insertSpirvDecorations(), processBlockAddr(), and selectOpBitcasts().
Definition at line 363 of file SPIRVGlobalRegistry.h.
bool SPIRVGlobalRegistry::isBitcastCompatible | ( | const SPIRVType * | Type1, |
const SPIRVType * | Type2 | ||
) | const |
Definition at line 1329 of file SPIRVGlobalRegistry.cpp.
References getNumScalarOrVectorTotalBitWidth(), llvm::MachineInstr::getOpcode(), retrieveScalarOrVectorIntType(), and Type2.
Referenced by buildOpBitcast(), and validatePtrTypes().
Definition at line 1232 of file SPIRVGlobalRegistry.cpp.
Definition at line 1211 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), and llvm::generateReadImageInst().
Definition at line 1218 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), and getSPIRVTypeForVReg().
Referenced by llvm::SPIRVTargetLowering::finalizeLowering(), llvm::generateConvertInst(), llvm::generateDotOrFMulInst(), and getScalarOrVectorComponentType().
Definition at line 1313 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), and retrieveScalarOrVectorIntType().
|
inline |
Definition at line 258 of file SPIRVGlobalRegistry.h.
References F, and llvm::MachineOperand::getParent().
Referenced by llvm::SPIRVCallLowering::lowerFormalArguments().
|
inline |
Definition at line 253 of file SPIRVGlobalRegistry.h.
References F.
Definition at line 2003 of file SPIRVGlobalRegistry.cpp.
References llvm::Value::replaceAllUsesWith(), updateIfExistAssignPtrTypeInstr(), and updateIfExistDeducedElementType().
const SPIRVType * SPIRVGlobalRegistry::retrieveScalarOrVectorIntType | ( | const SPIRVType * | Type | ) | const |
Definition at line 1306 of file SPIRVGlobalRegistry.cpp.
References getSPIRVTypeForVReg().
Referenced by isBitcastCompatible(), and isScalarOrVectorSigned().
|
inline |
Definition at line 115 of file SPIRVGlobalRegistry.h.
Referenced by llvm::SPIRVModuleAnalysis::runOnModule().
|
inline |
Definition at line 356 of file SPIRVGlobalRegistry.h.
References CurMF.
Referenced by llvm::SPIRVTargetLowering::finalizeLowering(), llvm::SPIRVCallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerFormalArguments(), and validateFunCallMachineDef().
Definition at line 2049 of file SPIRVGlobalRegistry.cpp.
References addDeducedElementType(), llvm::buildMD(), getIntrinsicID(), llvm::Value::getType(), and llvm::CallBase::setArgOperand().
Referenced by buildAssignPtr().
|
inline |
Definition at line 147 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), and findAssignPtrTypeInstr().
Referenced by replaceAllUsesWith().
|
inline |
Definition at line 190 of file SPIRVGlobalRegistry.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), and findDeducedElementType().
Referenced by replaceAllUsesWith().
MachineFunction* llvm::SPIRVGlobalRegistry::CurMF |
Definition at line 113 of file SPIRVGlobalRegistry.h.
Referenced by assignFloatTypeToVReg(), assignIntTypeToVReg(), assignVectTypeToVReg(), buildConstantInt(), buildGlobalVariable(), createConstFP(), createConstInt(), getOrCreateConstFP(), getOrCreateConstInt(), getOrCreateConstNullPtr(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVFloatType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), getResultType(), getSPIRVTypeForVReg(), processNewInstrs(), and setCurrentFunc().