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 246 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 | |||
) |
|
static |
Definition at line 253 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 60 of file DXILPostOptimizationValidation.cpp.
References llvm::DXILResourceMap::calls(), llvm::DXILResourceMap::find(), llvm::Instruction::getDebugLoc(), llvm::Instruction::getFunction(), llvm::CallBase::getIntrinsicID(), llvm::dxil::UAV, llvm::DXILResourceMap::uavs(), and llvm::Value::users().
Referenced by reportErrors().
|
static |
Definition at line 97 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 86 of file DXILPostOptimizationValidation.cpp.
References llvm::dxil::ResourceInfo::getBinding(), llvm::dxil::ResourceInfo::getName(), llvm::dxil::ResourceInfo::ResourceBinding::LowerBound, OS, and R2.
Referenced by reportOverlappingBinding().
|
static |
Definition at line 121 of file DXILPostOptimizationValidation.cpp.
References llvm::dxil::getResourceClassName(), llvm::hlsl::Binding::LowerBound, OS, R2, llvm::hlsl::Binding::RC, llvm::hlsl::Binding::Space, and llvm::hlsl::Binding::UpperBound.
Referenced by validateRootSignature().
|
static |
Definition at line 135 of file DXILPostOptimizationValidation.cpp.
References llvm::dxil::getResourceClassName(), llvm::dxil::ResourceInfo::ResourceBinding::LowerBound, OS, and llvm::dxil::ResourceInfo::ResourceBinding::Space.
Referenced by validateRootSignature().
|
static |
Definition at line 28 of file DXILPostOptimizationValidation.cpp.
References llvm_unreachable.
Referenced by validateRootSignature().
|
static |
Definition at line 43 of file DXILPostOptimizationValidation.cpp.
References llvm_unreachable.
|
static |
Definition at line 146 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 167 of file DXILPostOptimizationValidation.cpp.
References Binding, llvm::hlsl::BindingInfoBuilder::calculateBindingInfo(), llvm::hlsl::BindingInfoBuilder::findOverlapping(), llvm::mcdxbc::RootParametersContainer::getConstant(), llvm::mcdxbc::RootParametersContainer::getDescriptorTable(), llvm::mcdxbc::RootParametersContainer::getRootDescriptor(), llvm::hlsl::BoundRegs::isBound(), llvm::mcdxbc::RootParameterInfo::Location, llvm::mcdxbc::RootSignatureDesc::ParametersContainer, Range, llvm::mcdxbc::DescriptorTable::Ranges, llvm::dxbc::RTS0::v1::StaticSampler::RegisterSpace, reportOverlappingRegisters(), reportRegNotBound(), llvm::dxil::ModuleMetadataInfo::ShaderProfile, llvm::dxbc::RTS0::v1::StaticSampler::ShaderRegister, llvm::mcdxbc::RootSignatureDesc::StaticSamplers, llvm::hlsl::BindingInfoBuilder::takeBoundRegs(), toResourceClass(), llvm::hlsl::BindingInfoBuilder::trackBinding(), tripleToVisibility(), llvm::mcdxbc::RootParameterInfo::Type, and llvm::mcdxbc::RootParameterInfo::Visibility.
Referenced by reportErrors().
DEBUG_TYPE |
Definition at line 331 of file DXILPostOptimizationValidation.cpp.
DXIL Post Optimization false |
Definition at line 332 of file DXILPostOptimizationValidation.cpp.
DXIL Post Optimization Validation |
Definition at line 332 of file DXILPostOptimizationValidation.cpp.