Skip to content

Commit edb015d

Browse files
author
joaosaffran
committed
address comments
1 parent da42c0c commit edb015d

File tree

2 files changed

+21
-19
lines changed

2 files changed

+21
-19
lines changed

llvm/lib/Target/DirectX/DXILPostOptimizationValidation.cpp

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "DXILShaderFlags.h"
1111
#include "DirectX.h"
1212
#include "llvm/ADT/SmallString.h"
13+
#include "llvm/ADT/SmallVector.h"
1314
#include "llvm/Analysis/DXILMetadataAnalysis.h"
1415
#include "llvm/Analysis/DXILResource.h"
1516
#include "llvm/IR/DiagnosticInfo.h"
@@ -136,8 +137,8 @@ static uint32_t parameterToRangeType(uint32_t Type) {
136137
}
137138

138139
static RootSignatureBindingValidation
139-
initRsBindingValdation(const mcdxbc::RootSignatureDesc &RSD,
140-
dxbc::ShaderVisibility Visibility) {
140+
initRSBindingValidation(const mcdxbc::RootSignatureDesc &RSD,
141+
dxbc::ShaderVisibility Visibility) {
141142

142143
RootSignatureBindingValidation Validation;
143144

@@ -199,15 +200,17 @@ getRootSignature(RootSignatureBindingInfo &RSBI,
199200

200201
static void reportUnboundRegisters(
201202
Module &M,
202-
const std::vector<llvm::dxil::ResourceInfo::ResourceBinding> &Bindings,
203-
iterator_range<SmallVector<dxil::ResourceInfo>::iterator> &Resources) {
203+
const llvm::ArrayRef<llvm::dxil::ResourceInfo::ResourceBinding> &Bindings,
204+
const iterator_range<SmallVectorImpl<dxil::ResourceInfo>::iterator>
205+
&Resources) {
204206
for (auto Res = Resources.begin(), End = Resources.end(); Res != End; Res++) {
205207
bool Bound = false;
206208
ResourceInfo::ResourceBinding ResBinding = Res->getBinding();
207209
for (const auto &Binding : Bindings) {
208210
if (ResBinding.Space == Binding.Space &&
209211
ResBinding.LowerBound >= Binding.LowerBound &&
210-
ResBinding.LowerBound < Binding.LowerBound + Binding.Size) {
212+
ResBinding.LowerBound + ResBinding.Size - 1 <
213+
Binding.LowerBound + Binding.Size) {
211214
Bound = true;
212215
break;
213216
}
@@ -234,22 +237,20 @@ static void reportErrors(Module &M, DXILResourceMap &DRM,
234237
if (auto RSD = getRootSignature(RSBI, MMI)) {
235238

236239
RootSignatureBindingValidation Validation =
237-
initRsBindingValdation(*RSD, tripleToVisibility(MMI.ShaderProfile));
238-
239-
auto Cbufs = DRM.cbuffers();
240-
auto SRVs = DRM.srvs();
241-
auto UAVs = DRM.uavs();
242-
auto Samplers = DRM.samplers();
240+
initRSBindingValidation(*RSD, tripleToVisibility(MMI.ShaderProfile));
243241

244242
reportUnboundRegisters(
245-
M, Validation.getBindingsOfType(dxbc::DescriptorRangeType::CBV), Cbufs);
243+
M, Validation.getBindingsOfType(dxbc::DescriptorRangeType::CBV),
244+
DRM.cbuffers());
246245
reportUnboundRegisters(
247-
M, Validation.getBindingsOfType(dxbc::DescriptorRangeType::UAV), UAVs);
246+
M, Validation.getBindingsOfType(dxbc::DescriptorRangeType::UAV),
247+
DRM.uavs());
248248
reportUnboundRegisters(
249249
M, Validation.getBindingsOfType(dxbc::DescriptorRangeType::Sampler),
250-
Samplers);
250+
DRM.samplers());
251251
reportUnboundRegisters(
252-
M, Validation.getBindingsOfType(dxbc::DescriptorRangeType::SRV), SRVs);
252+
M, Validation.getBindingsOfType(dxbc::DescriptorRangeType::SRV),
253+
DRM.srvs());
253254
}
254255
}
255256
} // namespace
@@ -307,6 +308,7 @@ INITIALIZE_PASS_BEGIN(DXILPostOptimizationValidationLegacy, DEBUG_TYPE,
307308
INITIALIZE_PASS_DEPENDENCY(DXILResourceBindingWrapperPass)
308309
INITIALIZE_PASS_DEPENDENCY(DXILResourceTypeWrapperPass)
309310
INITIALIZE_PASS_DEPENDENCY(DXILResourceWrapperPass)
311+
INITIALIZE_PASS_DEPENDENCY(DXILMetadataAnalysisWrapperPass)
310312
INITIALIZE_PASS_DEPENDENCY(RootSignatureAnalysisWrapper)
311313
INITIALIZE_PASS_END(DXILPostOptimizationValidationLegacy, DEBUG_TYPE,
312314
"DXIL Post Optimization Validation", false, false)

llvm/lib/Target/DirectX/DXILPostOptimizationValidation.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ class RootSignatureBindingValidation {
4747

4848
It->second.End++;
4949

50-
for (auto &[type, range] : Ranges) {
51-
if (range.Start > InsertPos) {
52-
range.Start++;
53-
range.End++;
50+
for (auto &[Type, Range] : Ranges) {
51+
if (Range.Start > InsertPos) {
52+
Range.Start++;
53+
Range.End++;
5454
}
5555
}
5656
}

0 commit comments

Comments
 (0)