Skip to content

Commit 9e365c8

Browse files
svenvhsys-ce-bb
authored andcommitted
Return a VersionNumber from getRequiredSPIRVVersion (#2469)
This eliminates the need for casts, making the various overrides easier to read. Original commit: KhronosGroup/SPIRV-LLVM-Translator@a3dea91f3719852
1 parent b30c1db commit 9e365c8

File tree

3 files changed

+21
-22
lines changed

3 files changed

+21
-22
lines changed

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVDecorate.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,21 +89,21 @@ class SPIRVDecorateGeneric : public SPIRVAnnotationGeneric {
8989
}
9090
}
9191

92-
SPIRVWord getRequiredSPIRVVersion() const override {
92+
VersionNumber getRequiredSPIRVVersion() const override {
9393
switch (Dec) {
9494
case DecorationSpecId:
9595
if (getModule()->hasCapability(CapabilityKernel))
96-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_1);
96+
return VersionNumber::SPIRV_1_1;
9797
else
98-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_0);
98+
return VersionNumber::SPIRV_1_0;
9999

100100
case DecorationMaxByteOffset:
101-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_1);
101+
return VersionNumber::SPIRV_1_1;
102102
case DecorationUserSemantic:
103-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_4);
103+
return VersionNumber::SPIRV_1_4;
104104

105105
default:
106-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_0);
106+
return VersionNumber::SPIRV_1_0;
107107
}
108108
}
109109

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVEntry.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -592,8 +592,7 @@ void SPIRVEntry::updateModuleVersion() const {
592592
if (!Module)
593593
return;
594594

595-
Module->setMinSPIRVVersion(
596-
static_cast<VersionNumber>(getRequiredSPIRVVersion()));
595+
Module->setMinSPIRVVersion(getRequiredSPIRVVersion());
597596
}
598597

599598
spv_ostream &operator<<(spv_ostream &O, const SPIRVEntry &E) {

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVEntry.h

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class SPIRVExtInst;
7676
void decode(std::istream &I) override;
7777

7878
#define _REQ_SPIRV_VER(Version) \
79-
SPIRVWord getRequiredSPIRVVersion() const override { return Version; }
79+
VersionNumber getRequiredSPIRVVersion() const override { return Version; }
8080

8181
// Add implementation of encode/decode functions to a class.
8282
// Used out side of class definition.
@@ -417,8 +417,8 @@ class SPIRVEntry {
417417
void validateBuiltin(SPIRVWord, SPIRVWord) const;
418418

419419
// By default assume SPIRV 1.0 as required version
420-
virtual SPIRVWord getRequiredSPIRVVersion() const {
421-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_0);
420+
virtual VersionNumber getRequiredSPIRVVersion() const {
421+
return VersionNumber::SPIRV_1_0;
422422
}
423423

424424
virtual std::vector<SPIRVEntry *> getNonLiteralOperands() const {
@@ -683,16 +683,16 @@ class SPIRVExecutionMode : public SPIRVAnnotation {
683683
return getCapability(ExecMode);
684684
}
685685

686-
SPIRVWord getRequiredSPIRVVersion() const override {
686+
VersionNumber getRequiredSPIRVVersion() const override {
687687
switch (ExecMode) {
688688
case ExecutionModeFinalizer:
689689
case ExecutionModeInitializer:
690690
case ExecutionModeSubgroupSize:
691691
case ExecutionModeSubgroupsPerWorkgroup:
692-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_1);
692+
return VersionNumber::SPIRV_1_1;
693693

694694
default:
695-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_0);
695+
return VersionNumber::SPIRV_1_0;
696696
}
697697
}
698698

@@ -730,8 +730,8 @@ class SPIRVExecutionModeId : public SPIRVExecutionMode {
730730
}
731731
// Incomplete constructor
732732
SPIRVExecutionModeId() : SPIRVExecutionMode() {}
733-
SPIRVWord getRequiredSPIRVVersion() const override {
734-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_2);
733+
VersionNumber getRequiredSPIRVVersion() const override {
734+
return VersionNumber::SPIRV_1_2;
735735
}
736736
};
737737

@@ -870,7 +870,7 @@ class SPIRVCapability : public SPIRVEntryNoId<OpCapability> {
870870
SPIRVCapability() : Kind(CapabilityMatrix) {}
871871
_SPIRV_DCL_ENCDEC
872872

873-
SPIRVWord getRequiredSPIRVVersion() const override {
873+
VersionNumber getRequiredSPIRVVersion() const override {
874874
switch (Kind) {
875875
case CapabilityGroupNonUniform:
876876
case CapabilityGroupNonUniformVote:
@@ -879,15 +879,15 @@ class SPIRVCapability : public SPIRVEntryNoId<OpCapability> {
879879
case CapabilityGroupNonUniformShuffle:
880880
case CapabilityGroupNonUniformShuffleRelative:
881881
case CapabilityGroupNonUniformClustered:
882-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_3);
882+
return VersionNumber::SPIRV_1_3;
883883

884884
case CapabilityNamedBarrier:
885885
case CapabilitySubgroupDispatch:
886886
case CapabilityPipeStorage:
887-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_1);
887+
return VersionNumber::SPIRV_1_1;
888888

889889
default:
890-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_0);
890+
return VersionNumber::SPIRV_1_0;
891891
}
892892
}
893893

@@ -1020,8 +1020,8 @@ class SPIRVModuleProcessed : public SPIRVEntryNoId<OpModuleProcessed> {
10201020
SPIRVModuleProcessed() { updateModuleVersion(); }
10211021
_SPIRV_DCL_ENCDEC
10221022
void validate() const override;
1023-
SPIRVWord getRequiredSPIRVVersion() const override {
1024-
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_1);
1023+
VersionNumber getRequiredSPIRVVersion() const override {
1024+
return VersionNumber::SPIRV_1_1;
10251025
}
10261026

10271027
std::string getProcessStr();

0 commit comments

Comments
 (0)