llvm::DXILResourceBindingInfo

Binding-slot occupancy for DXIL resources in a module.

Synopsis

Declared in <llvm/Analysis/DXILResource.h>

class DXILResourceBindingInfo;

Description

Stores the results of DXILResourceBindingAnalysis, which analyses all llvm.dx.resource.handlefrombinding calls in the module and puts together lists of used virtual register spaces and available virtual register slot ranges for each binding type. It also stores additional information found during the analysis such as whether the module uses implicit bindings or if any of the bindings overlap.

This information will be used in DXILResourceImplicitBindings pass to assign register slots to resources with implicit bindings, and in a post-optimization validation pass that will raise diagnostic about overlapping bindings.

Member Functions

NameDescription
findAvailableBinding Find an unused register slot range for a resource binding.
hasImplicitBinding Return true if the module uses implicit bindings.
hasOverlappingBinding Return true if any explicit bindings overlap.
setHasImplicitBinding Record whether the module uses implicit bindings.
setHasOverlappingBinding Record whether any explicit bindings overlap.

Friends

NameDescription
llvm::DXILResourceBindingWrapperPassLegacy module pass wrapping a DXILResourceBindingInfo.
llvm::DXILResourceBindingAnalysisAnalysis that builds a DXILResourceBindingInfo for a module.