Binding-slot occupancy for DXIL resources in a module.
Declared in <llvm/Analysis/DXILResource.h>
class DXILResourceBindingInfo;
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.
| Name | Description |
|---|---|
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. |
| Name | Description |
|---|---|
llvm::DXILResourceBindingWrapperPass | Legacy module pass wrapping a DXILResourceBindingInfo. |
llvm::DXILResourceBindingAnalysis | Analysis that builds a DXILResourceBindingInfo for a module. |