LLVM
17.0.0git
|
#include "Target/SPIRV/SPIRVGlobalRegistry.h"
Public Attributes | |
MachineFunction * | CurMF |
Definition at line 27 of file SPIRVGlobalRegistry.h.
SPIRVGlobalRegistry::SPIRVGlobalRegistry | ( | unsigned | PointerSize | ) |
Definition at line 25 of file SPIRVGlobalRegistry.cpp.
|
inline |
Definition at line 83 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::add(), and Arg.
|
inline |
Definition at line 71 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::add().
Referenced by addConstantsToTrack().
|
inline |
Definition at line 79 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::add(), and F.
|
inline |
Definition at line 75 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::add().
SPIRVType * SPIRVGlobalRegistry::assignIntTypeToVReg | ( | unsigned | BitWidth, |
Register | VReg, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 28 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::BitWidth, CurMF, getOrCreateSPIRVIntegerType(), I, and TII.
void SPIRVGlobalRegistry::assignSPIRVTypeToVReg | ( | SPIRVType * | Type, |
Register | VReg, | ||
MachineFunction & | MF | ||
) |
Definition at line 56 of file SPIRVGlobalRegistry.cpp.
Referenced by assignIntTypeToVReg(), assignTypeToVReg(), assignVectTypeToVReg(), llvm::buildAtomicCompareExchangeInst(), llvm::buildBoolRegister(), llvm::buildBuiltinVariableLoad(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::buildLoadInst(), convertPtrToInt(), llvm::generateEnqueueInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), getOrCreateConstNullPtr(), getOrCreateUndef(), llvm::insertAssignInstr(), llvm::SPIRVCallLowering::lowerCall(), processSwitches(), and propagateSPIRVType().
SPIRVType * SPIRVGlobalRegistry::assignTypeToVReg | ( | const Type * | Type, |
Register | VReg, | ||
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::AccessQualifier::AccessQualifier | AQ = SPIRV::AccessQualifier::ReadWrite , |
||
bool | EmitIR = true |
||
) |
Definition at line 46 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::getMF(), and getOrCreateSPIRVType().
Referenced by buildConstantFP(), buildConstantInt(), llvm::SPIRV::lowerBuiltin(), llvm::SPIRVCallLowering::lowerCall(), and llvm::SPIRVCallLowering::lowerFormalArguments().
SPIRVType * SPIRVGlobalRegistry::assignVectTypeToVReg | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
Register | VReg, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 37 of file SPIRVGlobalRegistry.cpp.
References assignSPIRVTypeToVReg(), CurMF, getOrCreateSPIRVVectorType(), I, and TII.
Register SPIRVGlobalRegistry::buildConstantFP | ( | APFloat | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType = nullptr |
||
) |
Definition at line 223 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), assert(), assignTypeToVReg(), llvm::BitWidth, llvm::MachineIRBuilder::buildFConstant(), llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::ConstantFP::get(), llvm::Type::getContext(), llvm::Type::getFloatTy(), llvm::MachineIRBuilder::getMF(), getScalarOrVectorBitWidth(), getTypeForSPIRVType(), llvm::Type::isFloatingPointTy(), llvm::Register::isValid(), and llvm::LLT::scalar().
Referenced by llvm::generateReadImageInst().
Register SPIRVGlobalRegistry::buildConstantInt | ( | uint64_t | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType = nullptr , |
||
bool | EmitIR = true |
||
) |
Definition at line 177 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assert(), assignTypeToVReg(), llvm::BitWidth, llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildInstr(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::ConstantInt::get(), llvm::Type::getInt32Ty(), llvm::MachineIRBuilder::getMF(), getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), llvm::Register::isValid(), and llvm::LLT::scalar().
Referenced by llvm::buildConstantIntReg(), llvm::buildSelectInst(), llvm::generateEnqueueInst(), llvm::generateGroupInst(), and llvm::genWorkgroupQuery().
Register SPIRVGlobalRegistry::buildConstantSampler | ( | Register | Res, |
unsigned | AddrMode, | ||
unsigned | Param, | ||
unsigned | FilerMode, | ||
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType | ||
) |
Definition at line 413 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineIRBuilder::getMRI(), getOrCreateSPIRVType(), getOrCreateSPIRVTypeByName(), getSPIRVTypeID(), getTypeForSPIRVType(), and llvm::Register::isValid().
Referenced by llvm::generateReadImageInst(), and llvm::generateSampleImageInst().
|
inline |
Definition at line 99 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::buildDepsGraph().
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 436 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), assert(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildCopy(), llvm::MachineIRBuilder::buildInstr(), llvm::buildOpDecorate(), llvm::buildOpName(), llvm::constrainSelectedInstRegOperands(), CurMF, llvm::GlobalValue::ExternalLinkage, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::LLT::getAddressSpace(), llvm::GlobalObject::getAlign(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::Value::getName(), llvm::MachineInstr::getOperand(), llvm::GlobalValue::getParent(), llvm::MachineOperand::getReg(), llvm::getSpirvBuiltInIdByName(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), llvm::MachineRegisterInfo::getType(), getTypeForSPIRVType(), llvm::Value::hasName(), llvm::LLT::isPointer(), M, MRI, llvm::LLT::pointer(), llvm::MachineRegisterInfo::setType(), llvm::Align::value(), and llvm::MaybeAlign::valueOrOne().
Referenced by llvm::buildBuiltinVariableLoad().
|
inline |
Definition at line 87 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::find().
Referenced by addConstantsToTrack(), and llvm::SPIRVCallLowering::lowerCall().
|
inline |
Definition at line 95 of file SPIRVGlobalRegistry.h.
References F, and llvm::SPIRVGeneralDuplicatesTracker::find().
|
inline |
Definition at line 91 of file SPIRVGlobalRegistry.h.
References llvm::SPIRVGeneralDuplicatesTracker::find().
Register SPIRVGlobalRegistry::getOrCreateConsIntArray | ( | uint64_t | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 306 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::ConstantInt::get(), llvm::ConstantArray::get(), llvm::ArrayType::getElementType(), llvm::ArrayType::getNumElements(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), getScalarOrVectorBitWidth(), getSPIRVTypeForVReg(), getTypeForSPIRVType(), I, llvm::Type::isArrayTy(), and TII.
Referenced by llvm::generateEnqueueInst().
Register SPIRVGlobalRegistry::getOrCreateConsIntArray | ( | uint64_t | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType, | ||
bool | EmitIR = true |
||
) |
Definition at line 376 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::ConstantInt::get(), llvm::ConstantArray::get(), llvm::ArrayType::getElementType(), llvm::ArrayType::getNumElements(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), getScalarOrVectorBitWidth(), getSPIRVTypeForVReg(), getTypeForSPIRVType(), and llvm::Type::isArrayTy().
Register SPIRVGlobalRegistry::getOrCreateConsIntVector | ( | uint64_t | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 290 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::ConstantInt::get(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), getScalarOrVectorBitWidth(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), I, llvm::Type::isVectorTy(), and TII.
Referenced by llvm::buildSelectInst().
Register SPIRVGlobalRegistry::getOrCreateConsIntVector | ( | uint64_t | Val, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRVType * | SpvType, | ||
bool | EmitIR = true |
||
) |
Definition at line 359 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::ConstantInt::get(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), getScalarOrVectorBitWidth(), llvm::ConstantVector::getSplat(), getTypeForSPIRVType(), and llvm::Type::isVectorTy().
Register SPIRVGlobalRegistry::getOrCreateConstInt | ( | uint64_t | Val, |
MachineInstr & | I, | ||
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 146 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::addNumImm(), llvm::MachineInstrBuilder::addUse(), assert(), BB, llvm::BuildMI(), llvm::constrainSelectedInstRegOperands(), CurMF, getScalarOrVectorBitWidth(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), I, llvm::ARM_MB::ST, and TII.
Referenced by getOrCreateSPIRVArrayType().
Register SPIRVGlobalRegistry::getOrCreateConstNullPtr | ( | MachineIRBuilder & | MIRBuilder, |
SPIRVType * | SpvType | ||
) |
Definition at line 394 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), llvm::HexagonISD::CP, llvm::MachineRegisterInfo::createGenericVirtualRegister(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::ConstantPointerNull::get(), llvm::PointerType::getAddressSpace(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), getTypeForSPIRVType(), llvm::Register::isValid(), and llvm::LLT::pointer().
Referenced by llvm::buildEnqueueKernel().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeByOpcode | ( | const Type * | Ty, |
MachineIRBuilder & | MIRBuilder, | ||
unsigned | Opcode | ||
) |
Definition at line 895 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::MachineIRBuilder::getMF(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getUniqueVRegDef(), and llvm::Register::isValid().
Referenced by llvm::getNonParametrizedType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeDeviceEvent | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 870 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), and llvm::MachineIRBuilder::getMF().
Referenced by llvm::SPIRV::lowerBuiltinType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeFunctionWithArgs | ( | const Type * | Ty, |
SPIRVType * | RetType, | ||
const SmallVectorImpl< SPIRVType * > & | ArgTypes, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 610 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::MachineIRBuilder::getMF(), and getSPIRVTypeForVReg().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeImage | ( | MachineIRBuilder & | MIRBuilder, |
SPIRVType * | SampledType, | ||
SPIRV::Dim::Dim | Dim, | ||
uint32_t | Depth, | ||
uint32_t | Arrayed, | ||
uint32_t | Multisampled, | ||
uint32_t | Sampled, | ||
SPIRV::ImageFormat::ImageFormat | ImageFormat, | ||
SPIRV::AccessQualifier::AccessQualifier | AccQual | ||
) |
Definition at line 823 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::Depth, llvm::MachineIRBuilder::getMF(), and getSPIRVTypeID().
Referenced by llvm::getImageType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypePipe | ( | MachineIRBuilder & | MIRBuilder, |
SPIRV::AccessQualifier::AccessQualifier | AccQual | ||
) |
Definition at line 857 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), and llvm::MachineIRBuilder::getMF().
Referenced by llvm::getPipeType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeSampledImage | ( | SPIRVType * | ImageType, |
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 880 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), llvm::MachineIRBuilder::getMF(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), and llvm::MachineRegisterInfo::getVRegDef().
Referenced by llvm::generateReadImageInst(), llvm::generateSampleImageInst(), and llvm::getSampledImageType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateOpTypeSampler | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 848 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineIRBuilder::buildInstr(), createTypeVReg(), and llvm::MachineIRBuilder::getMF().
Referenced by llvm::getSamplerType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVArrayType | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1027 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), BB, llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::ArrayType::get(), getOrCreateConstInt(), getOrCreateSPIRVIntegerType(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), getSPIRVTypeID(), getTypeForSPIRVType(), I, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVBoolType | ( | MachineInstr & | I, |
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 991 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), BB, llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), I, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVBoolType | ( | MachineIRBuilder & | MIRBuilder | ) |
Definition at line 984 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::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 969 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), BB, llvm::BitWidth, llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::IntegerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), I, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType | ( | unsigned | BitWidth, |
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 953 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::buildAtomicCompareExchangeInst(), llvm::buildConstantIntReg(), llvm::buildEnqueueKernel(), llvm::generateImageSizeQueryInst(), llvm::genWorkgroupQuery(), and getOrCreateSPIRVArrayType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | SPIRVType * | BaseType, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII, | ||
SPIRV::StorageClass::StorageClass | SClass = SPIRV::StorageClass::Function |
||
) |
Definition at line 1054 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), BB, llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::PointerType::get(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), getSPIRVTypeID(), getTypeForSPIRVType(), I, llvm::PPCISD::SC, llvm::storageClassToAddressSpace(), and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVPointerType | ( | SPIRVType * | BaseType, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::StorageClass::StorageClass | SClass = SPIRV::StorageClass::Function |
||
) |
Definition at line 1045 of file SPIRVGlobalRegistry.cpp.
References llvm::PointerType::get(), getOrCreateSPIRVType(), getTypeForSPIRVType(), and llvm::storageClassToAddressSpace().
Referenced by llvm::buildBuiltinVariableLoad(), and llvm::buildEnqueueKernel().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVType | ( | const Type * | Type, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::AccessQualifier::AccessQualifier | AQ = SPIRV::AccessQualifier::ReadWrite , |
||
bool | EmitIR = true |
||
) |
Definition at line 744 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::MachineIRBuilder::getMF(), getSPIRVTypeForVReg(), and llvm::isSpecialOpaqueType().
Referenced by assignTypeToVReg(), buildConstantSampler(), llvm::generateEnqueueInst(), getOrCreateSPIRVBoolType(), llvm::getOrCreateSPIRVDeviceEventPointer(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVTypeByName(), getOrCreateSPIRVVectorType(), llvm::getSampledImageType(), llvm::insertAssignInstr(), llvm::SPIRVCallLowering::lowerCall(), processSwitches(), and propagateSPIRVType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName | ( | StringRef | TypeStr, |
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 916 of file SPIRVGlobalRegistry.cpp.
References llvm::StructType::create(), llvm::StringRef::find(), llvm::StringRef::getAsInteger(), llvm::Function::getContext(), llvm::Type::getFloatTy(), llvm::MachineFunction::getFunction(), llvm::Type::getHalfTy(), llvm::Type::getInt32Ty(), llvm::MachineIRBuilder::getMF(), getOrCreateSPIRVType(), getOrCreateSPIRVVectorType(), llvm::Type::getVoidTy(), llvm_unreachable, llvm::StringRef::startswith(), and llvm::StringRef::substr().
Referenced by buildConstantSampler(), llvm::generateSampleImageInst(), and llvm::getImageType().
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1011 of file SPIRVGlobalRegistry.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), BB, llvm::BuildMI(), createTypeVReg(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::FixedVectorType::get(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeForVReg(), getSPIRVTypeID(), getTypeForSPIRVType(), I, and TII.
SPIRVType * SPIRVGlobalRegistry::getOrCreateSPIRVVectorType | ( | SPIRVType * | BaseType, |
unsigned | NumElements, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 1003 of file SPIRVGlobalRegistry.cpp.
References llvm::FixedVectorType::get(), getOrCreateSPIRVType(), and getTypeForSPIRVType().
Referenced by assignVectTypeToVReg(), llvm::buildBoolRegister(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::genWorkgroupQuery(), and getOrCreateSPIRVTypeByName().
Register SPIRVGlobalRegistry::getOrCreateUndef | ( | MachineInstr & | I, |
SPIRVType * | SpvType, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 1071 of file SPIRVGlobalRegistry.cpp.
References llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), assignSPIRVTypeToVReg(), llvm::BuildMI(), llvm::constrainSelectedInstRegOperands(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), CurMF, llvm::SPIRVGeneralDuplicatesTracker::find(), llvm::UndefValue::get(), llvm::MachineFunction::getRegInfo(), getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), getTypeForSPIRVType(), I, llvm::Register::isValid(), llvm::LLT::scalar(), llvm::ARM_MB::ST, and TII.
|
inline |
Definition at line 177 of file SPIRVGlobalRegistry.h.
Referenced by llvm::buildBuiltinVariableLoad(), llvm::buildEnqueueKernel(), llvm::generateEnqueueInst(), and llvm::genWorkgroupQuery().
SPIRV::StorageClass::StorageClass SPIRVGlobalRegistry::getPointerStorageClass | ( | Register | VReg | ) | const |
Definition at line 815 of file SPIRVGlobalRegistry.cpp.
References assert(), getSPIRVTypeForVReg(), and StorageClass.
Referenced by llvm::buildAtomicLoadInst(), llvm::buildAtomicStoreInst(), and llvm::buildMemSemanticsReg().
Definition at line 789 of file SPIRVGlobalRegistry.cpp.
References assert(), getSPIRVTypeForVReg(), and llvm_unreachable.
Referenced by buildConstantFP(), buildConstantInt(), llvm::buildSelectInst(), llvm::generateBuiltinVar(), llvm::generateReadImageInst(), getOrCreateConsIntArray(), getOrCreateConsIntVector(), and getOrCreateConstInt().
Definition at line 734 of file SPIRVGlobalRegistry.cpp.
References CurMF.
Referenced by llvm::buildAtomicCompareExchangeInst(), createNewIdReg(), llvm::generateDotOrFMulInst(), llvm::generateEnqueueInst(), llvm::generateGroupInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateReadImageInst(), llvm::generateSampleImageInst(), llvm::genWorkgroupQuery(), getOrCreateConsIntArray(), getOrCreateOpTypeFunctionWithArgs(), getOrCreateSPIRVArrayType(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVType(), getOrCreateSPIRVVectorType(), getPointerStorageClass(), getScalarOrVectorBitWidth(), hasSPIRVTypeForVReg(), isScalarOfType(), isScalarOrVectorOfType(), isScalarOrVectorSigned(), processSwitches(), and propagateSPIRVType().
Definition at line 632 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::defs(), llvm::MachineInstr::getOpcode(), and llvm::MachineInstr::uses().
Referenced by llvm::buildAtomicCompareExchangeInst(), llvm::buildAtomicFlagInst(), llvm::buildAtomicLoadInst(), llvm::buildAtomicRMWInst(), buildConstantInt(), buildConstantSampler(), llvm::buildEnqueueKernel(), buildGlobalVariable(), llvm::generateAsyncCopy(), llvm::generateConvertInst(), llvm::generateDotOrFMulInst(), llvm::generateEnqueueInst(), llvm::generateExtInst(), llvm::generateGroupInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateLoadStoreInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::generateSampleImageInst(), llvm::generateSpecConstantInst(), llvm::generateVectorLoadStoreInst(), getOrCreateConstInt(), getOrCreateConstNullPtr(), getOrCreateOpTypeImage(), getOrCreateOpTypeSampledImage(), getOrCreateSPIRVArrayType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), llvm::insertAssignInstr(), llvm::SPIRV::lowerBuiltinType(), and llvm::SPIRVCallLowering::lowerCall().
Definition at line 133 of file SPIRVGlobalRegistry.h.
References assert(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >, KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >::end(), and llvm::DenseMapBase< DenseMap< KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >, KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >::find().
Referenced by llvm::buildBoolRegister(), buildConstantFP(), buildConstantInt(), buildConstantSampler(), buildGlobalVariable(), getOrCreateConsIntArray(), getOrCreateConsIntVector(), getOrCreateConstNullPtr(), getOrCreateSPIRVArrayType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVVectorType(), and getOrCreateUndef().
|
inline |
Definition at line 149 of file SPIRVGlobalRegistry.h.
References getSPIRVTypeForVReg().
bool SPIRVGlobalRegistry::isScalarOfType | ( | Register | VReg, |
unsigned | TypeOpcode | ||
) | const |
Definition at line 767 of file SPIRVGlobalRegistry.cpp.
References assert(), and getSPIRVTypeForVReg().
Referenced by llvm::buildAtomicCompareExchangeInst(), and llvm::generateReadImageInst().
bool SPIRVGlobalRegistry::isScalarOrVectorOfType | ( | Register | VReg, |
unsigned | TypeOpcode | ||
) | const |
Definition at line 774 of file SPIRVGlobalRegistry.cpp.
References assert(), llvm::MachineInstr::getOpcode(), and getSPIRVTypeForVReg().
Referenced by llvm::generateConvertInst().
Definition at line 803 of file SPIRVGlobalRegistry.cpp.
References assert(), getSPIRVTypeForVReg(), and llvm_unreachable.
|
inline |
Definition at line 156 of file SPIRVGlobalRegistry.h.
References CurMF.
Referenced by llvm::SPIRVCallLowering::lowerCall(), and llvm::SPIRVCallLowering::lowerFormalArguments().
MachineFunction* llvm::SPIRVGlobalRegistry::CurMF |
Definition at line 69 of file SPIRVGlobalRegistry.h.
Referenced by assignIntTypeToVReg(), assignVectTypeToVReg(), buildConstantInt(), buildGlobalVariable(), getOrCreateConstInt(), getOrCreateConstNullPtr(), getOrCreateSPIRVArrayType(), getOrCreateSPIRVBoolType(), getOrCreateSPIRVIntegerType(), getOrCreateSPIRVPointerType(), getOrCreateSPIRVVectorType(), getOrCreateUndef(), getSPIRVTypeForVReg(), and setCurrentFunc().