LLVM 22.0.0git
|
#include "DXILPostOptimizationValidation.h"
#include "DXILRootSignature.h"
#include "DXILShaderFlags.h"
#include "DirectX.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/Analysis/DXILMetadataAnalysis.h"
#include "llvm/Analysis/DXILResource.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicsDirectX.h"
#include "llvm/IR/Module.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/DXILABI.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "dxil-post-optimization-validation" |
Variables | |
DEBUG_TYPE | |
DXIL Post Optimization | Validation |
DXIL Post Optimization | false |
#define DEBUG_TYPE "dxil-post-optimization-validation" |
Definition at line 23 of file DXILPostOptimizationValidation.cpp.
|
static |
Definition at line 258 of file DXILPostOptimizationValidation.cpp.
References llvm::dxil::ModuleMetadataInfo::EntryPropertyVec, and llvm::dxil::RootSignatureBindingInfo::getDescForFunction().
Referenced by reportErrors().
INITIALIZE_PASS_BEGIN | ( | DXILPostOptimizationValidationLegacy | , |
DEBUG_TYPE | , | ||
"DXIL Post Optimization Validation" | , | ||
false | , | ||
false | ) |
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
|
static |
Definition at line 265 of file DXILPostOptimizationValidation.cpp.
References assert(), getRootSignature(), llvm::DXILResourceBindingInfo::hasImplicitBinding(), llvm::DXILResourceMap::hasInvalidCounterDirection(), llvm::DXILResourceBindingInfo::hasOverlappingBinding(), reportInvalidDirection(), reportOverlappingBinding(), and validateRootSignature().
Referenced by llvm::DXILPostOptimizationValidation::run().
|
static |
Definition at line 45 of file DXILPostOptimizationValidation.cpp.
References llvm::DXILResourceMap::calls(), llvm::dyn_cast(), llvm::DXILResourceMap::find(), llvm::Instruction::getDebugLoc(), llvm::Instruction::getFunction(), llvm::CallBase::getIntrinsicID(), llvm::dxil::Invalid, llvm::dxil::UAV, llvm::DXILResourceMap::uavs(), and llvm::Value::users().
Referenced by reportErrors().
|
static |
Definition at line 106 of file DXILPostOptimizationValidation.cpp.
References Binding, and llvm::dxil::getResourceClassName().
Referenced by validateRootSignature().
|
static |
Definition at line 82 of file DXILPostOptimizationValidation.cpp.
References assert(), llvm::DXILResourceMap::cbuffers(), llvm::dxil::ResourceInfo::getBinding(), I, llvm::dxil::ResourceInfo::ResourceBinding::overlapsWith(), reportOverlappingError(), llvm::DXILResourceMap::samplers(), llvm::DXILResourceMap::srvs(), and llvm::DXILResourceMap::uavs().
Referenced by reportErrors().
|
static |
Definition at line 71 of file DXILPostOptimizationValidation.cpp.
References llvm::dxil::ResourceInfo::getBinding(), llvm::dxil::ResourceInfo::getName(), llvm::dxil::ResourceInfo::ResourceBinding::LowerBound, and R2.
Referenced by reportOverlappingBinding().
|
static |
Definition at line 117 of file DXILPostOptimizationValidation.cpp.
References llvm::dxil::getResourceClassName(), llvm::hlsl::Binding::LowerBound, R2, llvm::hlsl::Binding::RC, llvm::hlsl::Binding::Space, and llvm::hlsl::Binding::UpperBound.
Referenced by validateRootSignature().
|
static |
Definition at line 131 of file DXILPostOptimizationValidation.cpp.
References llvm::dxil::getResourceClassName(), llvm::dxil::ResourceInfo::ResourceBinding::LowerBound, and llvm::dxil::ResourceInfo::ResourceBinding::Space.
Referenced by validateRootSignature().
|
static |
Definition at line 28 of file DXILPostOptimizationValidation.cpp.
References llvm::dxil::CBuffer, llvm_unreachable, llvm::dxil::SRV, and llvm::dxil::UAV.
Referenced by validateRootSignature().
|
static |
Definition at line 142 of file DXILPostOptimizationValidation.cpp.
References llvm::Triple::Compute, llvm::Triple::Domain, llvm::Triple::Geometry, llvm::Triple::Hull, llvm_unreachable, llvm::Triple::Mesh, llvm::Triple::Pixel, and llvm::Triple::Vertex.
Referenced by validateRootSignature().
|
static |
Definition at line 163 of file DXILPostOptimizationValidation.cpp.
References Binding, llvm::dxil::CBuffer, llvm::hlsl::BoundRegs::findBoundReg(), llvm::mcdxbc::RootParametersContainer::getConstant(), llvm::mcdxbc::RootParametersContainer::getDescriptorTable(), llvm::dxil::ResourceTypeInfo::getResourceClass(), llvm::dxil::ResourceTypeInfo::getResourceKind(), llvm::mcdxbc::RootParametersContainer::getRootDescriptor(), llvm::mcdxbc::RootParameterInfo::Location, llvm::mcdxbc::RootSignatureDesc::ParametersContainer, Range, llvm::mcdxbc::DescriptorTable::Ranges, llvm::dxil::RawBuffer, Reg, llvm::mcdxbc::StaticSampler::RegisterSpace, reportInvalidHandleTyError(), reportOverlappingRegisters(), reportRegNotBound(), llvm::dxil::Sampler, llvm::dxil::ModuleMetadataInfo::ShaderProfile, llvm::mcdxbc::StaticSampler::ShaderRegister, llvm::dxil::SRV, llvm::mcdxbc::RootSignatureDesc::StaticSamplers, llvm::dxil::StructuredBuffer, toResourceClass(), tripleToVisibility(), llvm::mcdxbc::RootParameterInfo::Type, llvm::dxil::UAV, and llvm::mcdxbc::RootParameterInfo::Visibility.
Referenced by reportErrors().
DEBUG_TYPE |
Definition at line 343 of file DXILPostOptimizationValidation.cpp.
DXIL Post Optimization false |
Definition at line 344 of file DXILPostOptimizationValidation.cpp.
DXIL Post Optimization Validation |
Definition at line 344 of file DXILPostOptimizationValidation.cpp.