[llvm] [SPIR-V] Emit SPIR-V generator magic number and version (PR #87951)
Nathan Gauër via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 15 05:55:17 PDT 2024
================
@@ -76,18 +76,23 @@ getSymbolicOperandRequirements(SPIRV::OperandCategory::OperandCategory Category,
SPIRV::RequirementHandler &Reqs) {
static AvoidCapabilitiesSet
AvoidCaps; // contains capabilities to avoid if there is another option
- unsigned ReqMinVer = getSymbolicOperandMinVersion(Category, i);
- unsigned ReqMaxVer = getSymbolicOperandMaxVersion(Category, i);
- unsigned TargetVer = ST.getSPIRVVersion();
- bool MinVerOK = !ReqMinVer || !TargetVer || TargetVer >= ReqMinVer;
- bool MaxVerOK = !ReqMaxVer || !TargetVer || TargetVer <= ReqMaxVer;
+
+ unsigned ReqMinVerDec = getSymbolicOperandMinVersion(Category, i);
+ VersionTuple ReqMinVer = VersionTuple(ReqMinVerDec / 10, ReqMinVerDec % 10);
+ unsigned ReqMaxVerDec = getSymbolicOperandMaxVersion(Category, i);
+ VersionTuple ReqMaxVer = VersionTuple(ReqMaxVerDec / 10, ReqMaxVerDec % 10);
+ VersionTuple SPIRVVersion = ST.getSPIRVVersion();
+ bool MinVerOK =
+ ReqMinVer.empty() || SPIRVVersion.empty() || SPIRVVersion >= ReqMinVer;
+ bool MaxVerOK =
+ ReqMaxVer.empty() || SPIRVVersion.empty() || SPIRVVersion <= ReqMaxVer;
----------------
Keenuts wrote:
nit: `if not provided, version number are considered to be zero`
The min should always be usable without having to check for `empty` since it defaults to the minimum value.
https://github.com/llvm/llvm-project/pull/87951
More information about the llvm-commits
mailing list