LLVM: lib/Target/DirectX/DXILTranslateMetadata.cpp File Reference (original) (raw)

Go to the source code of this file.

Functions
static NamedMDNode * emitResourceMetadata (Module &M, DXILResourceMap &DRM, DXILResourceTypeMap &DRTM)
static StringRef getShortShaderStage (Triple::EnvironmentType Env)
static uint32_t getShaderStage (Triple::EnvironmentType Env)
static SmallVector< Metadata * > getTagValueAsMetadata (EntryPropsTag Tag, uint64_t Value, LLVMContext &Ctx)
static MDTuple * getEntryPropAsMetadata (Module &M, const EntryProperties &EP, uint64_t EntryShaderFlags, const ModuleMetadataInfo &MMDI)
static MDTuple * constructEntryMetadata (const Function *EntryFn, MDTuple *Signatures, MDNode *Resources, MDTuple *Properties, LLVMContext &Ctx)
static MDTuple * emitEntryMD (Module &M, const EntryProperties &EP, MDTuple *Signatures, MDNode *MDResources, const uint64_t EntryShaderFlags, const ModuleMetadataInfo &MMDI)
static void emitValidatorVersionMD (Module &M, const ModuleMetadataInfo &MMDI)
static void emitShaderModelVersionMD (Module &M, const ModuleMetadataInfo &MMDI)
static void emitDXILVersionTupleMD (Module &M, const ModuleMetadataInfo &MMDI)
static MDTuple * emitTopLevelLibraryNode (Module &M, MDNode *RMD, uint64_t ShaderFlags)
static void translateBranchMetadata (Module &M, Instruction *BBTerminatorInst)
static bool isLoopMDCompatible (Module &M, Metadata *MD)
static void translateLoopMetadata (Module &M, Instruction *I, MDNode *BaseMD)
static InstructionMDList getCompatibleInstructionMDs (llvm::Module &M)
static void translateInstructionMetadata (Module &M)
static void cleanModuleFlags (Module &M)
static void translateGlobalMetadata (Module &M, DXILResourceMap &DRM, DXILResourceTypeMap &DRTM, const ModuleShaderFlags &ShaderFlags, const ModuleMetadataInfo &MMDI)
INITIALIZE_PASS_BEGIN (DXILTranslateMetadataLegacy, "dxil-translate-metadata", "DXIL Translate Metadata", false, false) INITIALIZE_PASS_END(DXILTranslateMetadataLegacy
Variables
static GlobalMDList CompatibleNamedModuleMDs
dxil translate metadata
dxil translate DXIL Translate Metadata
dxil translate DXIL Translate false

GlobalMDList

InstructionMDList

cleanModuleFlags()

void cleanModuleFlags ( Module & M) static

constructEntryMetadata()

emitDXILVersionTupleMD()

emitEntryMD()

emitResourceMetadata()

Definition at line 90 of file DXILTranslateMetadata.cpp.

References llvm::NamedMDNode::addOperand(), llvm::DXILResourceMap::cbuffers(), llvm::DXILResourceMap::empty(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::MDNode::get(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::DXILResourceMap::samplers(), llvm::DXILResourceMap::srvs(), and llvm::DXILResourceMap::uavs().

Referenced by translateGlobalMetadata().

emitShaderModelVersionMD()

emitTopLevelLibraryNode()

emitValidatorVersionMD()

getCompatibleInstructionMDs()

getEntryPropAsMetadata()

Definition at line 187 of file DXILTranslateMetadata.cpp.

References llvm::SmallVectorImpl< T >::append(), llvm::Triple::Compute, llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::dxil::EntryProperties::Entry, llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::Function::getContext(), llvm::Type::getInt32Ty(), getShaderStage(), getTagValueAsMetadata(), llvm::Triple::Library, llvm::dxil::EntryProperties::NumThreadsX, llvm::dxil::EntryProperties::NumThreadsY, llvm::dxil::EntryProperties::NumThreadsZ, llvm::SmallVectorTemplateBase< T, bool >::push_back(), reportError(), llvm::dxil::ModuleMetadataInfo::ShaderModelVersion, llvm::dxil::ModuleMetadataInfo::ShaderProfile, llvm::dxil::EntryProperties::ShaderStage, llvm::dxil::EntryProperties::WaveSizeMax, llvm::dxil::EntryProperties::WaveSizeMin, and llvm::dxil::EntryProperties::WaveSizePref.

Referenced by emitEntryMD().

getShaderStage()

getShortShaderStage()

Definition at line 124 of file DXILTranslateMetadata.cpp.

References llvm::Triple::Amplification, llvm::Triple::Compute, llvm::Triple::Domain, llvm::Triple::Geometry, llvm::Triple::Hull, llvm::Triple::Library, llvm_unreachable, llvm::Triple::Mesh, llvm::Triple::Pixel, llvm::Triple::RootSignature, and llvm::Triple::Vertex.

Referenced by emitShaderModelVersionMD(), and translateGlobalMetadata().

getTagValueAsMetadata()

INITIALIZE_PASS_BEGIN()

isLoopMDCompatible()

translateBranchMetadata()

translateGlobalMetadata()

Definition at line 527 of file DXILTranslateMetadata.cpp.

References llvm::NamedMDNode::addOperand(), cleanModuleFlags(), CompatibleNamedModuleMDs, emitDXILVersionTupleMD(), emitEntryMD(), emitResourceMetadata(), emitShaderModelVersionMD(), emitTopLevelLibraryNode(), emitValidatorVersionMD(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::dxil::EntryProperties::Entry, llvm::dxil::ModuleMetadataInfo::EntryPropertyVec, llvm::Triple::getEnvironmentTypeName(), llvm::Value::getName(), llvm::NamedMDNode::getOperand(), getShortShaderStage(), llvm::is_contained(), llvm::Triple::Library, llvm::SmallVectorTemplateBase< T, bool >::push_back(), reportError(), llvm::dxil::ModuleMetadataInfo::ShaderProfile, and llvm::dxil::EntryProperties::ShaderStage.

Referenced by llvm::DXILTranslateMetadata::run(), and llvm::DXILTranslateMetadataLegacy::runOnModule().

translateInstructionMetadata()

void translateInstructionMetadata ( Module & M) static

translateLoopMetadata()

Definition at line 415 of file DXILTranslateMetadata.cpp.

References llvm::ArrayRef< T >::drop_front(), llvm::dyn_cast(), llvm::MDNode::get(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDNode::getTemporary(), I, isLoopMDCompatible(), llvm::MDNode::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by translateInstructionMetadata().

CompatibleNamedModuleMDs

GlobalMDList CompatibleNamedModuleMDs static

false

dxil translate DXIL Translate false

Metadata

metadata