Skip to content

Commit 30098e1

Browse files
author
joaosaffran
committed
addressing pr comments
1 parent 31bcd73 commit 30098e1

File tree

9 files changed

+15
-48
lines changed

9 files changed

+15
-48
lines changed

llvm/include/llvm/BinaryFormat/DXContainerConstants.def

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ ROOT_ELEMENT_FLAG(11, SamplerHeapDirectlyIndexed)
7575
#ifdef ROOT_PARAMETER
7676

7777
ROOT_PARAMETER(1, Constants32Bit)
78-
ROOT_PARAMETER(5, Empty)
7978
#undef ROOT_PARAMETER
8079
#endif // ROOT_PARAMETER
8180

@@ -89,7 +88,6 @@ SHADER_VISIBILITY(4, Geometry)
8988
SHADER_VISIBILITY(5, Pixel)
9089
SHADER_VISIBILITY(6, Amplification)
9190
SHADER_VISIBILITY(7, Mesh)
92-
SHADER_VISIBILITY(8, Empty)
9391
#undef SHADER_VISIBILITY
9492
#endif // SHADER_VISIBILITY
9593

llvm/include/llvm/BinaryFormat/RootSignatureValidation.h renamed to llvm/include/llvm/BinaryFormat/RootSignatureVerifier.h

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,23 @@ namespace llvm {
1818

1919
namespace dxbc {
2020

21-
struct RootSignatureValidations {
21+
struct RootSignatureVerifier {
2222

23-
static bool isValidRootFlag(uint32_t Flags) { return (Flags & ~0xfff) == 0; }
23+
static bool verifyRootFlag(uint32_t Flags) { return (Flags & ~0xfff) == 0; }
2424

25-
static bool isValidVersion(uint32_t Version) {
25+
static bool verifyVersion(uint32_t Version) {
2626
return (Version == 1 || Version == 2);
2727
}
2828

29-
static bool isValidParameterType(dxbc::RootParameterType Type) {
29+
static bool verifyParameterType(dxbc::RootParameterType Type) {
3030
switch (Type) {
3131
case dxbc::RootParameterType::Constants32Bit:
3232
return true;
33-
case RootParameterType::Empty:
34-
return false;
3533
}
3634
return false;
3735
}
3836

39-
static bool isValidShaderVisibility(dxbc::ShaderVisibility Visibility) {
37+
static bool verifyShaderVisibility(dxbc::ShaderVisibility Visibility) {
4038
switch (Visibility) {
4139

4240
case ShaderVisibility::All:
@@ -48,8 +46,6 @@ struct RootSignatureValidations {
4846
case ShaderVisibility::Amplification:
4947
case ShaderVisibility::Mesh:
5048
return true;
51-
case ShaderVisibility::Empty:
52-
return false;
5349
}
5450
return false;
5551
};

llvm/include/llvm/MC/DXContainerRootSignature.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@ struct RootSignatureDesc {
4141
case dxbc::RootParameterType::Constants32Bit:
4242
size += sizeof(dxbc::RootConstants);
4343
break;
44-
case dxbc::RootParameterType::Empty:
45-
llvm_unreachable("Parameter shouldn't be Empty here");
46-
break;
4744
}
4845
}
4946
return size;

llvm/include/llvm/Object/DXContainer.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,6 @@ struct ViewRootParameter {
178178
Parameter.Constants))
179179
return Err;
180180
break;
181-
case dxbc::RootParameterType::Empty:
182-
break;
183181
}
184182

185183
return Parameter;

llvm/lib/MC/DXContainerRootSignature.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ void RootSignatureDesc::write(raw_ostream &OS) const {
3434
raw_svector_ostream BOS(Storage);
3535
BOS.reserveExtraSpace(getSize());
3636
const uint32_t NumParameters = Parameters.size();
37-
const uint32_t Zero = 0;
37+
const uint32_t Zero = 0u;
3838

3939
support::endian::write(BOS, Header.Version, llvm::endianness::little);
4040
support::endian::write(BOS, NumParameters, llvm::endianness::little);
@@ -63,15 +63,13 @@ void RootSignatureDesc::write(raw_ostream &OS) const {
6363
const auto &P = Parameters[I];
6464

6565
switch (P.Header.ParameterType) {
66-
case dxbc::RootParameterType::Constants32Bit: {
66+
case dxbc::RootParameterType::Constants32Bit:
6767
support::endian::write(BOS, P.Constants.Register,
6868
llvm::endianness::little);
6969
support::endian::write(BOS, P.Constants.Space, llvm::endianness::little);
7070
support::endian::write(BOS, P.Constants.NumOfConstants,
7171
llvm::endianness::little);
72-
} break;
73-
case dxbc::RootParameterType::Empty:
74-
llvm_unreachable("Invalid RootParameterType");
72+
break;
7573
}
7674
}
7775

llvm/lib/Object/DXContainer.cpp

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
#include "llvm/Object/DXContainer.h"
1010
#include "llvm/BinaryFormat/DXContainer.h"
11-
#include "llvm/BinaryFormat/RootSignatureValidation.h"
11+
#include "llvm/BinaryFormat/RootSignatureVerifier.h"
1212
#include "llvm/Object/Error.h"
1313
#include "llvm/Support/Alignment.h"
1414
#include "llvm/Support/Endian.h"
@@ -27,18 +27,6 @@ static Error validationFailed(const Twine &Msg) {
2727
return make_error<StringError>(Msg.str(), inconvertibleErrorCode());
2828
}
2929

30-
template <typename E> static Error safeConvertEnum(uint32_t Value, E &Result) {
31-
static_assert(std::is_enum_v<E>, "Template must be an enum type");
32-
33-
if (Value >= 0 && Value < static_cast<int>(E::Empty)) {
34-
Result = static_cast<E>(Value);
35-
return Error::success();
36-
}
37-
38-
// Throw an exception if the value is out of range
39-
return parseFailed("Value is not within range for enum");
40-
}
41-
4230
template <typename T>
4331
static Error readStruct(StringRef Buffer, const char *Src, T &Struct) {
4432
// Don't read before the beginning or past the end of the file
@@ -274,7 +262,7 @@ Error DirectX::RootSignature::parse(StringRef Data) {
274262
support::endian::read<uint32_t, llvm::endianness::little>(Current);
275263
Current += sizeof(uint32_t);
276264

277-
if (!dxbc::RootSignatureValidations::isValidVersion(VValue))
265+
if (!dxbc::RootSignatureVerifier::verifyVersion(VValue))
278266
return validationFailed("unsupported root signature version read: " +
279267
llvm::Twine(VValue));
280268
Version = VValue;
@@ -299,7 +287,7 @@ Error DirectX::RootSignature::parse(StringRef Data) {
299287
support::endian::read<uint32_t, llvm::endianness::little>(Current);
300288
Current += sizeof(uint32_t);
301289

302-
if (!dxbc::RootSignatureValidations::isValidRootFlag(FValue))
290+
if (!dxbc::RootSignatureVerifier::verifyRootFlag(FValue))
303291
return validationFailed("unsupported root signature flag value read: " +
304292
llvm::Twine(FValue));
305293
Flags = FValue;
@@ -314,12 +302,12 @@ Error DirectX::RootSignature::parse(StringRef Data) {
314302
if (!P)
315303
return P.takeError();
316304

317-
if (!dxbc::RootSignatureValidations::isValidParameterType(
305+
if (!dxbc::RootSignatureVerifier::verifyParameterType(
318306
P->Header.ParameterType))
319307
return validationFailed("unsupported parameter type value read: " +
320308
llvm::Twine((uint32_t)P->Header.ParameterType));
321309

322-
if (!dxbc::RootSignatureValidations::isValidShaderVisibility(
310+
if (!dxbc::RootSignatureVerifier::verifyShaderVisibility(
323311
P->Header.ShaderVisibility))
324312
return validationFailed(
325313
"unsupported shader visility flag value read: " +

llvm/lib/ObjectYAML/DXContainerEmitter.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -281,9 +281,6 @@ void DXContainerWriter::writeParts(raw_ostream &OS) {
281281
NewParam.Constants.Space = Param.Constants.Space;
282282
NewParam.Constants.Register = Param.Constants.Register;
283283
break;
284-
case dxbc::RootParameterType::Empty:
285-
llvm_unreachable("Invalid parameter type");
286-
break;
287284
}
288285

289286
RS.Parameters.push_back(NewParam);

llvm/lib/ObjectYAML/DXContainerYAML.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,6 @@ DXContainerYAML::RootSignatureYamlDesc::RootSignatureYamlDesc(
5151
NewP.Constants.Register = P->Constants.Register;
5252
NewP.Constants.Space = P->Constants.Space;
5353
break;
54-
case dxbc::RootParameterType::Empty:
55-
llvm_unreachable("Invalid RootParameterType");
56-
break;
5754
}
5855
Parameters.push_back(NewP);
5956
}
@@ -255,8 +252,6 @@ void MappingTraits<llvm::DXContainerYAML::RootParameterYamlDesc>::mapping(
255252
case dxbc::RootParameterType::Constants32Bit:
256253
IO.mapRequired("Constants", P.Constants);
257254
break;
258-
case dxbc::RootParameterType::Empty:
259-
llvm_unreachable("Invalid value for ParameterType");
260255
}
261256
}
262257

llvm/lib/Target/DirectX/DXILRootSignature.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#include "llvm/ADT/Twine.h"
1717
#include "llvm/Analysis/DXILMetadataAnalysis.h"
1818
#include "llvm/BinaryFormat/DXContainer.h"
19-
#include "llvm/BinaryFormat/RootSignatureValidation.h"
19+
#include "llvm/BinaryFormat/RootSignatureVerifier.h"
2020
#include "llvm/IR/Constants.h"
2121
#include "llvm/IR/DiagnosticInfo.h"
2222
#include "llvm/IR/Function.h"
@@ -94,7 +94,7 @@ static bool parse(LLVMContext *Ctx, mcdxbc::RootSignatureDesc &RSD,
9494
}
9595

9696
static bool validate(LLVMContext *Ctx, const mcdxbc::RootSignatureDesc &RSD) {
97-
if (!dxbc::RootSignatureValidations::isValidRootFlag(RSD.Header.Flags)) {
97+
if (!dxbc::RootSignatureVerifier::verifyRootFlag(RSD.Header.Flags)) {
9898
return reportError(Ctx, "Invalid Root Signature flag value");
9999
}
100100
return false;

0 commit comments

Comments
 (0)