LLVM
17.0.0git
|
Lowers a builtin funtion call using the provided DemangledCall
skeleton and external instruction Set
.
More...
Classes | |
struct | CapabilityEntry |
struct | ConvertBuiltin |
struct | DemangledBuiltin |
struct | DemangledType |
struct | DeviceEventTypeDescriptor |
class | DTSortableEntry |
struct | ExtendedBuiltin |
struct | ExtensionEntry |
struct | GetBuiltin |
struct | GroupBuiltin |
struct | ImageQueryBuiltin |
struct | ImageType |
struct | ImageTypeDescriptor |
struct | IncomingCall |
struct | ModuleAnalysisInfo |
struct | NativeBuiltin |
struct | PipeType |
struct | PipeTypeDescriptor |
struct | RequirementHandler |
struct | Requirements |
struct | SampledImageTypeDescriptor |
struct | SamplerTypeDescriptor |
struct | SpecialTypeDescriptor |
struct | SymbolicOperand |
struct | VectorLoadStoreBuiltin |
Typedefs | |
using | InstrList = SmallVector< MachineInstr * > |
using | LocalToGlobalRegTable = std::map< Register, Register > |
using | RegisterAliasMapTy = std::map< const MachineFunction *, LocalToGlobalRegTable > |
Enumerations | |
enum | ModuleSectionType { MB_EntryPoints, MB_DebugNames, MB_DebugModuleProcessed, MB_Annotations, MB_TypeConstVars, MB_ExtFuncDecls, NUM_MODULE_SECTIONS } |
Functions | |
std::optional< bool > | lowerBuiltin (const StringRef DemangledCall, SPIRV::InstructionSet::InstructionSet Set, MachineIRBuilder &MIRBuilder, const Register OrigRet, const Type *OrigRetTy, const SmallVectorImpl< Register > &Args, SPIRVGlobalRegistry *GR) |
SPIRVType * | lowerBuiltinType (const StructType *OpaqueType, SPIRV::AccessQualifier::AccessQualifier AccessQual, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) |
std::optional< bool > | lowerBuiltin (const StringRef DemangledCall, InstructionSet::InstructionSet Set, MachineIRBuilder &MIRBuilder, const Register OrigRet, const Type *OrigRetTy, const SmallVectorImpl< Register > &Args, SPIRVGlobalRegistry *GR) |
Lowers a builtin funtion call using the provided DemangledCall skeleton and external instruction Set . More... | |
SPIRVType * | lowerBuiltinType (const StructType *Type, AccessQualifier::AccessQualifier AccessQual, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) |
Handles the translation of the provided special opaque/builtin type Type to SPIR-V type. More... | |
Lowers a builtin funtion call using the provided DemangledCall
skeleton and external instruction Set
.
using llvm::SPIRV::InstrList = typedef SmallVector<MachineInstr *> |
Definition at line 115 of file SPIRVModuleAnalysis.h.
using llvm::SPIRV::LocalToGlobalRegTable = typedef std::map<Register, Register> |
Definition at line 117 of file SPIRVModuleAnalysis.h.
using llvm::SPIRV::RegisterAliasMapTy = typedef std::map<const MachineFunction *, LocalToGlobalRegTable> |
Definition at line 119 of file SPIRVModuleAnalysis.h.
Enumerator | |
---|---|
MB_EntryPoints | |
MB_DebugNames | |
MB_DebugModuleProcessed | |
MB_Annotations | |
MB_TypeConstVars | |
MB_ExtFuncDecls | |
NUM_MODULE_SECTIONS |
Definition at line 32 of file SPIRVModuleAnalysis.h.
std::optional<bool> llvm::SPIRV::lowerBuiltin | ( | const StringRef | DemangledCall, |
InstructionSet::InstructionSet | Set, | ||
MachineIRBuilder & | MIRBuilder, | ||
const Register | OrigRet, | ||
const Type * | OrigRetTy, | ||
const SmallVectorImpl< Register > & | Args, | ||
SPIRVGlobalRegistry * | GR | ||
) |
Lowers a builtin funtion call using the provided DemangledCall
skeleton and external instruction Set
.
DemangledCall
is the skeleton of the lowered builtin function call. Set
is the external instruction set containing the given builtin. OrigRet
is the single original virtual return register if defined, Register(0) otherwise. OrigRetTy
is the type of the OrigRet
. Args
are the arguments of the lowered builtin call.
std::optional<bool> llvm::SPIRV::lowerBuiltin | ( | const StringRef | DemangledCall, |
SPIRV::InstructionSet::InstructionSet | Set, | ||
MachineIRBuilder & | MIRBuilder, | ||
const Register | OrigRet, | ||
const Type * | OrigRetTy, | ||
const SmallVectorImpl< Register > & | Args, | ||
SPIRVGlobalRegistry * | GR | ||
) |
Definition at line 1835 of file SPIRVBuiltins.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, assert(), llvm::SPIRVGlobalRegistry::assignTypeToVReg(), llvm::MCID::Barrier, llvm::MachineRegisterInfo::createVirtualRegister(), llvm::dbgs(), llvm::generateAsyncCopy(), llvm::generateAtomicInst(), llvm::generateBarrierInst(), llvm::generateBuiltinVar(), llvm::generateConvertInst(), llvm::generateDotOrFMulInst(), llvm::generateEnqueueInst(), llvm::generateExtInst(), llvm::generateGetQueryInst(), llvm::generateGroupInst(), llvm::generateImageMiscQueryInst(), llvm::generateImageSizeQueryInst(), llvm::generateLoadStoreInst(), llvm::generateReadImageInst(), llvm::generateRelationalInst(), llvm::generateSampleImageInst(), llvm::generateSelectInst(), llvm::generateSpecConstantInst(), llvm::generateVectorLoadStoreInst(), llvm::generateWriteImageInst(), llvm::MachineIRBuilder::getMRI(), llvm::Type::isVoidTy(), LLVM_DEBUG, llvm::lookupBuiltin(), llvm::LLT::scalar(), llvm::MCID::Select, and llvm::MachineRegisterInfo::setType().
Referenced by llvm::SPIRVCallLowering::lowerCall().
SPIRVType* llvm::SPIRV::lowerBuiltinType | ( | const StructType * | OpaqueType, |
SPIRV::AccessQualifier::AccessQualifier | AccessQual, | ||
MachineIRBuilder & | MIRBuilder, | ||
SPIRVGlobalRegistry * | GR | ||
) |
Definition at line 2097 of file SPIRVBuiltins.cpp.
References assert(), llvm::buildOpName(), llvm::dbgs(), llvm::findBuiltinType(), llvm::getImageType(), llvm::MachineIRBuilder::getMRI(), llvm::StructType::getName(), llvm::getNonParametrizedType(), llvm::MachineRegisterInfo::getNumVirtRegs(), llvm::SPIRVGlobalRegistry::getOrCreateOpTypeDeviceEvent(), llvm::getPipeType(), llvm::getSampledImageType(), llvm::getSamplerType(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::StructType::hasName(), LLVM_DEBUG, llvm::SPIRV::DemangledType::Opcode, and llvm::report_fatal_error().
SPIRVType* llvm::SPIRV::lowerBuiltinType | ( | const StructType * | Type, |
AccessQualifier::AccessQualifier | AccessQual, | ||
MachineIRBuilder & | MIRBuilder, | ||
SPIRVGlobalRegistry * | GR | ||
) |
Handles the translation of the provided special opaque/builtin type Type
to SPIR-V type.
Generates the corresponding machine instructions for the target type or gets the already existing OpType<...> register from the global registry GR
.
Type
is the special opaque/builtin type to be lowered.