LLVM 22.0.0git
|
Builder class for creating a /c BindingInfo. More...
#include "llvm/Frontend/HLSL/HLSLBinding.h"
Public Member Functions | |
void | trackBinding (dxil::ResourceClass RC, uint32_t Space, uint32_t LowerBound, uint32_t UpperBound, const void *Cookie) |
LLVM_ABI BindingInfo | calculateBindingInfo (llvm::function_ref< void(const BindingInfoBuilder &Builder, const Binding &Overlapping)> ReportOverlap) |
Calculate the binding info - ReportOverlap will be called once for each overlapping binding. | |
BindingInfo | calculateBindingInfo (bool &HasOverlap) |
Calculate the binding info - HasOverlap will be set to indicate whether there are any overlapping bindings. | |
LLVM_ABI BoundRegs | takeBoundRegs () |
LLVM_ABI const Binding & | findOverlapping (const Binding &ReportedBinding) const |
For use in the ReportOverlap callback of calculateBindingInfo - finds a binding that the ReportedBinding overlaps with. | |
Builder class for creating a /c BindingInfo.
Definition at line 151 of file HLSLBinding.h.
|
inline |
Calculate the binding info - HasOverlap
will be set to indicate whether there are any overlapping bindings.
Definition at line 169 of file HLSLBinding.h.
References calculateBindingInfo().
BindingInfo BindingInfoBuilder::calculateBindingInfo | ( | llvm::function_ref< void(const BindingInfoBuilder &Builder, const Binding &Overlapping)> | ReportOverlap | ) |
Calculate the binding info - ReportOverlap
will be called once for each overlapping binding.
Definition at line 69 of file HLSLBinding.cpp.
References assert(), B, llvm::hlsl::BindingInfo::RegisterSpace::FreeRanges, Info, llvm::hlsl::BindingInfo::BindingRange::LowerBound, llvm::hlsl::BindingInfo::BindingSpaces::RC, llvm::hlsl::BindingInfo::RegisterSpace::Space, llvm::hlsl::BindingInfo::BindingSpaces::Spaces, llvm::dxil::SRV, llvm::stable_sort(), llvm::unique(), and llvm::hlsl::BindingInfo::BindingRange::UpperBound.
Referenced by calculateBindingInfo(), and validateRootSignature().
For use in the ReportOverlap
callback of calculateBindingInfo
- finds a binding that the ReportedBinding
overlaps with.
Definition at line 135 of file HLSLBinding.cpp.
References llvm_unreachable, llvm::hlsl::Binding::LowerBound, llvm::Other, and llvm::hlsl::Binding::UpperBound.
Referenced by validateRootSignature().
Definition at line 175 of file HLSLBinding.h.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), and llvm::SmallVectorTemplateCommon< T, typename >::end().
Referenced by validateRootSignature().
|
inline |
Definition at line 156 of file HLSLBinding.h.
References llvm::SmallVectorImpl< T >::emplace_back().
Referenced by validateRootSignature().