|
LLVM 22.0.0git
|
#include "DXILTranslateMetadata.h"#include "DXILRootSignature.h"#include "DXILShaderFlags.h"#include "DirectX.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/Twine.h"#include "llvm/Analysis/DXILMetadataAnalysis.h"#include "llvm/Analysis/DXILResource.h"#include "llvm/IR/BasicBlock.h"#include "llvm/IR/Constants.h"#include "llvm/IR/DiagnosticInfo.h"#include "llvm/IR/DiagnosticPrinter.h"#include "llvm/IR/Function.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/LLVMContext.h"#include "llvm/IR/MDBuilder.h"#include "llvm/IR/Metadata.h"#include "llvm/IR/Module.h"#include "llvm/InitializePasses.h"#include "llvm/Pass.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/VersionTuple.h"#include "llvm/TargetParser/Triple.h"#include <cstdint>Go to the source code of this file.
Typedefs | |
| using | InstructionMDList = std::array<unsigned, 7> |
| using | GlobalMDList = std::array<StringLiteral, 7> |
Variables | |
| static GlobalMDList | CompatibleNamedModuleMDs |
| dxil translate | metadata |
| dxil translate DXIL Translate | Metadata |
| dxil translate DXIL Translate | false |
| using GlobalMDList = std::array<StringLiteral, 7> |
Definition at line 475 of file DXILTranslateMetadata.cpp.
| using InstructionMDList = std::array<unsigned, 7> |
Definition at line 418 of file DXILTranslateMetadata.cpp.
|
static |
Definition at line 450 of file DXILTranslateMetadata.cpp.
References llvm::Module::AppendUnique, llvm::NamedMDNode::eraseFromParent(), and llvm::Module::Warning.
Referenced by translateGlobalMetadata().
|
static |
Definition at line 220 of file DXILTranslateMetadata.cpp.
References llvm::MDNode::get(), llvm::MDString::get(), llvm::ValueAsMetadata::get(), llvm::Value::getName(), and Signatures.
Referenced by emitEntryMD(), and emitTopLevelLibraryNode().
|
static |
Definition at line 279 of file DXILTranslateMetadata.cpp.
References llvm::NamedMDNode::addOperand(), llvm::dxil::ModuleMetadataInfo::DXILVersion, llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::IRBuilderBase::getInt32(), llvm::VersionTuple::getMajor(), and llvm::VersionTuple::getMinor().
Referenced by translateGlobalMetadata().
|
static |
Definition at line 239 of file DXILTranslateMetadata.cpp.
References constructEntryMetadata(), llvm::dxil::EntryProperties::Entry, llvm::Function::getContext(), getEntryPropAsMetadata(), and Signatures.
Referenced by translateGlobalMetadata().
|
static |
Definition at line 89 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().
|
static |
Definition at line 266 of file DXILTranslateMetadata.cpp.
References llvm::NamedMDNode::addOperand(), llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::MDString::get(), llvm::IRBuilderBase::getInt32(), llvm::VersionTuple::getMajor(), llvm::VersionTuple::getMinor(), getShortShaderStage(), llvm::dxil::ModuleMetadataInfo::ShaderModelVersion, and llvm::dxil::ModuleMetadataInfo::ShaderProfile.
Referenced by translateGlobalMetadata().
Definition at line 291 of file DXILTranslateMetadata.cpp.
References llvm::SmallVectorImpl< T >::append(), constructEntryMetadata(), llvm::MDNode::get(), and getTagValueAsMetadata().
Referenced by translateGlobalMetadata().
|
static |
Definition at line 249 of file DXILTranslateMetadata.cpp.
References llvm::NamedMDNode::addOperand(), llvm::NamedMDNode::clearOperands(), llvm::VersionTuple::empty(), llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::IRBuilderBase::getInt32(), llvm::VersionTuple::getMajor(), llvm::VersionTuple::getMinor(), and llvm::dxil::ModuleMetadataInfo::ValidatorVersion.
Referenced by translateGlobalMetadata().
|
static |
Definition at line 420 of file DXILTranslateMetadata.cpp.
Referenced by translateInstructionMetadata().
|
static |
Definition at line 186 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, and llvm::dxil::EntryProperties::ShaderStage.
Referenced by emitEntryMD().
|
static |
Definition at line 151 of file DXILTranslateMetadata.cpp.
References llvm::Triple::Pixel.
Referenced by getEntryPropAsMetadata().
|
static |
Definition at line 123 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().
|
static |
Definition at line 156 of file DXILTranslateMetadata.cpp.
References llvm::SmallVectorImpl< T >::emplace_back(), llvm::ConstantAsMetadata::get(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), and llvm_unreachable.
Referenced by emitTopLevelLibraryNode(), and getEntryPropAsMetadata().
| INITIALIZE_PASS_BEGIN | ( | DXILTranslateMetadataLegacy | , |
| "dxil-translate-metadata" | , | ||
| "DXIL Translate Metadata" | , | ||
| false | , | ||
| false | ) |
References INITIALIZE_PASS_DEPENDENCY.
Definition at line 332 of file DXILTranslateMetadata.cpp.
References llvm::Count, llvm::dyn_cast(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::is_contained(), and llvm::isa().
Referenced by translateLoopMetadata().
|
static |
Definition at line 306 of file DXILTranslateMetadata.cpp.
References assert(), llvm::MDBuilder::createConstant(), llvm::MDBuilder::createString(), llvm::mdconst::extract(), llvm::MDNode::get(), llvm::Instruction::getMetadata(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), and llvm::Instruction::setMetadata().
Referenced by translateInstructionMetadata().
|
static |
Definition at line 485 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, llvm::dxil::EntryProperties::ShaderStage, and Signatures.
Referenced by llvm::DXILTranslateMetadata::run(), and llvm::DXILTranslateMetadataLegacy::runOnModule().
|
static |
Definition at line 428 of file DXILTranslateMetadata.cpp.
References F, getCompatibleInstructionMDs(), I, llvm::isa(), llvm::make_early_inc_range(), translateBranchMetadata(), and translateLoopMetadata().
Referenced by llvm::DXILTranslateMetadata::run(), and llvm::DXILTranslateMetadataLegacy::runOnModule().
|
static |
Definition at line 373 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().
|
static |
Definition at line 480 of file DXILTranslateMetadata.cpp.
Referenced by translateGlobalMetadata().
| dxil translate DXIL Translate false |
Definition at line 607 of file DXILTranslateMetadata.cpp.
| dxil translate DXIL Translate Metadata |
Definition at line 607 of file DXILTranslateMetadata.cpp.
Referenced by llvm::TimeTraceProfiler::begin().
| dxil translate metadata |
Definition at line 606 of file DXILTranslateMetadata.cpp.