Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package spirv-llvm-translator for
openSUSE:Factory checked in at 2025-01-12 11:10:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/spirv-llvm-translator (Old)
and /work/SRC/openSUSE:Factory/.spirv-llvm-translator.new.1881 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "spirv-llvm-translator"
Sun Jan 12 11:10:05 2025 rev:14 rq:1236052 version:19.1.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/spirv-llvm-translator/spirv-llvm-translator.changes
2024-12-08 11:37:57.031665767 +0100
+++
/work/SRC/openSUSE:Factory/.spirv-llvm-translator.new.1881/spirv-llvm-translator.changes
2025-01-12 11:10:28.149330860 +0100
@@ -1,0 +2,9 @@
+Mon Jan 6 21:10:20 UTC 2025 - Aaron Puchert <[email protected]>
+
+- Update to version 19.1.3.
+ * Add support for MaxByteOffsetId, LocalSizeId, LocalSizeHintId
+ (SPIR-V 1.2) and SubgroupsPerWorkgroup(Id) (SPIR-V 1.1/1.2)
+ in SPIRVReader.
+ * Fix EnumClass support in DebugInfo.
+
+-------------------------------------------------------------------
Old:
----
SPIRV-LLVM-Translator-19.1.2.tar.gz
New:
----
SPIRV-LLVM-Translator-19.1.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ spirv-llvm-translator.spec ++++++
--- /var/tmp/diff_new_pack.BKW7q1/_old 2025-01-12 11:10:29.701394726 +0100
+++ /var/tmp/diff_new_pack.BKW7q1/_new 2025-01-12 11:10:29.713395220 +0100
@@ -1,7 +1,7 @@
#
# spec file for package spirv-llvm-translator
#
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2023, Martin Hauke <[email protected]>
#
# All modifications and additions to the file contributed by third parties
@@ -19,7 +19,7 @@
%define sover 19
Name: spirv-llvm-translator
-Version: 19.1.2
+Version: 19.1.3
Release: 0
Summary: LLVM/SPIR-V Bi-Directional Translator library
License: BSD-3-Clause
++++++ SPIRV-LLVM-Translator-19.1.2.tar.gz ->
SPIRV-LLVM-Translator-19.1.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-19.1.2/lib/SPIRV/LLVMToSPIRVDbgTran.cpp
new/SPIRV-LLVM-Translator-19.1.3/lib/SPIRV/LLVMToSPIRVDbgTran.cpp
--- old/SPIRV-LLVM-Translator-19.1.2/lib/SPIRV/LLVMToSPIRVDbgTran.cpp
2024-11-28 14:26:55.000000000 +0100
+++ new/SPIRV-LLVM-Translator-19.1.3/lib/SPIRV/LLVMToSPIRVDbgTran.cpp
2024-12-20 15:01:19.000000000 +0100
@@ -500,6 +500,8 @@
if (BM->getDebugInfoEIS() == SPIRVEIS_NonSemantic_Shader_DebugInfo_200)
if (DFlags & DINode::FlagBitField)
Flags |= SPIRVDebug::FlagBitField;
+ if (DFlags & DINode::FlagEnumClass)
+ Flags |= SPIRVDebug::FlagIsEnumClass;
return Flags;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-19.1.2/lib/SPIRV/SPIRVReader.cpp
new/SPIRV-LLVM-Translator-19.1.3/lib/SPIRV/SPIRVReader.cpp
--- old/SPIRV-LLVM-Translator-19.1.2/lib/SPIRV/SPIRVReader.cpp 2024-11-28
14:26:55.000000000 +0100
+++ new/SPIRV-LLVM-Translator-19.1.3/lib/SPIRV/SPIRVReader.cpp 2024-12-20
15:01:19.000000000 +0100
@@ -3127,6 +3127,14 @@
SPIRVWord MaxOffset = 0;
if (BA->hasDecorate(DecorationMaxByteOffset, 0, &MaxOffset))
Builder.addDereferenceableAttr(MaxOffset);
+ else {
+ SPIRVId MaxOffsetId;
+ if (BA->hasDecorateId(DecorationMaxByteOffsetId, 0, &MaxOffsetId)) {
+ if (auto MaxOffsetVal = transIdAsConstant(MaxOffsetId)) {
+ Builder.addDereferenceableAttr(*MaxOffsetVal);
+ }
+ }
+ }
if (auto Alignment = getAlignment(BA)) {
Builder.addAlignmentAttr(*Alignment);
}
@@ -4415,11 +4423,29 @@
if (auto *EM = BF->getExecutionMode(ExecutionModeLocalSize)) {
F->setMetadata(kSPIR2MD::WGSize,
getMDNodeStringIntVec(Context, EM->getLiterals()));
+ } else if (auto *EM = BF->getExecutionModeId(ExecutionModeLocalSizeId)) {
+ std::vector<SPIRVWord> Values;
+ for (const auto Id : EM->getLiterals()) {
+ if (auto Val = transIdAsConstant(Id)) {
+ Values.emplace_back(static_cast<SPIRVWord>(*Val));
+ }
+ }
+ F->setMetadata(kSPIR2MD::WGSize, getMDNodeStringIntVec(Context, Values));
}
// Generate metadata for work_group_size_hint
if (auto *EM = BF->getExecutionMode(ExecutionModeLocalSizeHint)) {
F->setMetadata(kSPIR2MD::WGSizeHint,
getMDNodeStringIntVec(Context, EM->getLiterals()));
+ } else if (auto *EM =
+ BF->getExecutionModeId(ExecutionModeLocalSizeHintId)) {
+ std::vector<SPIRVWord> Values;
+ for (const auto Id : EM->getLiterals()) {
+ if (auto Val = transIdAsConstant(Id)) {
+ Values.emplace_back(static_cast<SPIRVWord>(*Val));
+ }
+ }
+ F->setMetadata(kSPIR2MD::WGSizeHint,
+ getMDNodeStringIntVec(Context, Values));
}
// Generate metadata for vec_type_hint
if (auto *EM = BF->getExecutionMode(ExecutionModeVecTypeHint)) {
@@ -4453,6 +4479,25 @@
auto *SizeMD = ConstantAsMetadata::get(getInt32(M, -1));
F->setMetadata(kSPIR2MD::SubgroupSize, MDNode::get(*Context, SizeMD));
}
+ // Generate metadata for SubgroupsPerWorkgroup/SubgroupsPerWorkgroupId.
+ auto EmitSubgroupsPerWorkgroupMD = [this, F](SPIRVExecutionModeKind EMK,
+ uint64_t Value) {
+ NamedMDNode *ExecModeMD =
+ M->getOrInsertNamedMetadata(kSPIRVMD::ExecutionMode);
+ SmallVector<Metadata *, 2> OperandVec;
+ OperandVec.push_back(ConstantAsMetadata::get(F));
+ OperandVec.push_back(ConstantAsMetadata::get(getUInt32(M, EMK)));
+ OperandVec.push_back(ConstantAsMetadata::get(getUInt32(M, Value)));
+ ExecModeMD->addOperand(MDNode::get(*Context, OperandVec));
+ };
+ if (auto *EM = BF->getExecutionMode(ExecutionModeSubgroupsPerWorkgroup)) {
+ EmitSubgroupsPerWorkgroupMD(EM->getExecutionMode(),
EM->getLiterals()[0]);
+ } else if (auto *EM = BF->getExecutionModeId(
+ ExecutionModeSubgroupsPerWorkgroupId)) {
+ if (auto Val = transIdAsConstant(EM->getLiterals()[0])) {
+ EmitSubgroupsPerWorkgroupMD(EM->getExecutionMode(), *Val);
+ }
+ }
// Generate metadata for max_work_group_size
if (auto *EM = BF->getExecutionMode(ExecutionModeMaxWorkgroupSizeINTEL)) {
F->setMetadata(kSPIR2MD::MaxWGSize,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-19.1.2/lib/SPIRV/SPIRVToLLVMDbgTran.cpp
new/SPIRV-LLVM-Translator-19.1.3/lib/SPIRV/SPIRVToLLVMDbgTran.cpp
--- old/SPIRV-LLVM-Translator-19.1.2/lib/SPIRV/SPIRVToLLVMDbgTran.cpp
2024-11-28 14:26:55.000000000 +0100
+++ new/SPIRV-LLVM-Translator-19.1.3/lib/SPIRV/SPIRVToLLVMDbgTran.cpp
2024-12-20 15:01:19.000000000 +0100
@@ -812,7 +812,7 @@
UnderlyingType = transDebugInst<DIType>(static_cast<SPIRVExtInst *>(E));
return getDIBuilder(DebugInst).createEnumerationType(
Scope, Name, File, LineNo, SizeInBits, AlignInBits, Enumerators,
- UnderlyingType, 0, "", UnderlyingType);
+ UnderlyingType, 0, "", Flags & SPIRVDebug::FlagIsEnumClass);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-19.1.2/lib/SPIRV/libSPIRV/SPIRVEntry.cpp
new/SPIRV-LLVM-Translator-19.1.3/lib/SPIRV/libSPIRV/SPIRVEntry.cpp
--- old/SPIRV-LLVM-Translator-19.1.2/lib/SPIRV/libSPIRV/SPIRVEntry.cpp
2024-11-28 14:26:55.000000000 +0100
+++ new/SPIRV-LLVM-Translator-19.1.3/lib/SPIRV/libSPIRV/SPIRVEntry.cpp
2024-12-20 15:01:19.000000000 +0100
@@ -651,7 +651,9 @@
getDecoder(I) >> Target >> ExecMode;
switch (static_cast<uint32_t>(ExecMode)) {
case ExecutionModeLocalSize:
+ case ExecutionModeLocalSizeId:
case ExecutionModeLocalSizeHint:
+ case ExecutionModeLocalSizeHintId:
case ExecutionModeMaxWorkgroupSizeINTEL:
WordLiterals.resize(3);
break;
@@ -670,6 +672,8 @@
case ExecutionModeSharedLocalMemorySizeINTEL:
case ExecutionModeNamedBarrierCountINTEL:
case ExecutionModeSubgroupSize:
+ case ExecutionModeSubgroupsPerWorkgroup:
+ case ExecutionModeSubgroupsPerWorkgroupId:
case ExecutionModeMaxWorkDimINTEL:
case ExecutionModeNumSIMDWorkitemsINTEL:
case ExecutionModeSchedulerTargetFmaxMhzINTEL:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-19.1.2/lib/SPIRV/libSPIRV/SPIRVEntry.h
new/SPIRV-LLVM-Translator-19.1.3/lib/SPIRV/libSPIRV/SPIRVEntry.h
--- old/SPIRV-LLVM-Translator-19.1.2/lib/SPIRV/libSPIRV/SPIRVEntry.h
2024-11-28 14:26:55.000000000 +0100
+++ new/SPIRV-LLVM-Translator-19.1.3/lib/SPIRV/libSPIRV/SPIRVEntry.h
2024-12-20 15:01:19.000000000 +0100
@@ -804,6 +804,12 @@
return nullptr;
return Loc->second;
}
+ SPIRVExecutionModeId *getExecutionModeId(SPIRVExecutionModeKind EMK) const {
+ auto Loc = ExecModes.find(EMK);
+ if (Loc == ExecModes.end())
+ return nullptr;
+ return static_cast<SPIRVExecutionModeId *>(Loc->second);
+ }
SPIRVExecutionModeRange
getExecutionModeRange(SPIRVExecutionModeKind EMK) const {
return ExecModes.equal_range(EMK);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-19.1.2/test/LocalSizeHintId.spvasm
new/SPIRV-LLVM-Translator-19.1.3/test/LocalSizeHintId.spvasm
--- old/SPIRV-LLVM-Translator-19.1.2/test/LocalSizeHintId.spvasm
1970-01-01 01:00:00.000000000 +0100
+++ new/SPIRV-LLVM-Translator-19.1.3/test/LocalSizeHintId.spvasm
2024-12-20 15:01:19.000000000 +0100
@@ -0,0 +1,27 @@
+; REQUIRES: spirv-as
+
+; RUN: spirv-as %s --target-env spv1.2 -o %t.spv
+; RUN: spirv-val %t.spv
+; RUN: llvm-spirv -r -o %t.rev.bc %t.spv
+; RUN: llvm-dis %t.rev.bc -o - | FileCheck %s
+
+ OpCapability Addresses
+ OpCapability Linkage
+ OpCapability Kernel
+ OpMemoryModel Physical64 OpenCL
+ OpEntryPoint Kernel %fn "testLocalSizeHintId"
+ OpExecutionModeId %fn LocalSizeHintId %uint_64 %uint_1
%uint_1sco
+ %void = OpTypeVoid
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+ %uint_64 = OpConstant %uint 64
+ %uint_1sco = OpSpecConstantOp %uint UDiv %uint_64 %uint_64
+ %fnTy = OpTypeFunction %void
+
+; CHECK: define spir_kernel void @testLocalSizeHintId() {{.*}}
!work_group_size_hint ![[MD:[0-9]+]]
+; CHECK: ![[MD]] = !{i32 64, i32 1, i32 1}
+
+ %fn = OpFunction %void None %fnTy
+ %entry = OpLabel
+ OpReturn
+ OpFunctionEnd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/SPIRV-LLVM-Translator-19.1.2/test/LocalSizeId.spvasm
new/SPIRV-LLVM-Translator-19.1.3/test/LocalSizeId.spvasm
--- old/SPIRV-LLVM-Translator-19.1.2/test/LocalSizeId.spvasm 1970-01-01
01:00:00.000000000 +0100
+++ new/SPIRV-LLVM-Translator-19.1.3/test/LocalSizeId.spvasm 2024-12-20
15:01:19.000000000 +0100
@@ -0,0 +1,27 @@
+; REQUIRES: spirv-as
+
+; RUN: spirv-as %s --target-env spv1.2 -o %t.spv
+; RUN: spirv-val %t.spv
+; RUN: llvm-spirv -r -o %t.rev.bc %t.spv
+; RUN: llvm-dis %t.rev.bc -o - | FileCheck %s
+
+ OpCapability Addresses
+ OpCapability Linkage
+ OpCapability Kernel
+ OpMemoryModel Physical64 OpenCL
+ OpEntryPoint Kernel %fn "testLocalSizeId"
+ OpExecutionModeId %fn LocalSizeId %uint_64 %uint_1 %uint_1sco
+ %void = OpTypeVoid
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+ %uint_64 = OpConstant %uint 64
+ %uint_1sco = OpSpecConstantOp %uint UDiv %uint_64 %uint_64
+ %fnTy = OpTypeFunction %void
+
+; CHECK: define spir_kernel void @testLocalSizeId() {{.*}}
!reqd_work_group_size ![[MD:[0-9]+]]
+; CHECK: ![[MD]] = !{i32 64, i32 1, i32 1}
+
+ %fn = OpFunction %void None %fnTy
+ %entry = OpLabel
+ OpReturn
+ OpFunctionEnd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-19.1.2/test/MaxByteOffsetId.spvasm
new/SPIRV-LLVM-Translator-19.1.3/test/MaxByteOffsetId.spvasm
--- old/SPIRV-LLVM-Translator-19.1.2/test/MaxByteOffsetId.spvasm
1970-01-01 01:00:00.000000000 +0100
+++ new/SPIRV-LLVM-Translator-19.1.3/test/MaxByteOffsetId.spvasm
2024-12-20 15:01:19.000000000 +0100
@@ -0,0 +1,33 @@
+; REQUIRES: spirv-as
+
+; RUN: spirv-as %s --target-env spv1.2 -o %t.spv
+; RUN: spirv-val %t.spv
+; RUN: llvm-spirv -r -o %t.rev.bc %t.spv
+; RUN: llvm-dis %t.rev.bc -o - | FileCheck %s
+
+; CHECK: define spir_kernel void @testMaxByteOffsetId(
+; CHECK-SAME: ptr addrspace(1) dereferenceable(24) %p,
+; CHECK-SAME: ptr addrspace(1) dereferenceable(48) %q)
+
+ OpCapability Addresses
+ OpCapability Kernel
+ OpMemoryModel Physical64 OpenCL
+ OpEntryPoint Kernel %fn "testMaxByteOffsetId"
+ OpName %p "p"
+ OpName %q "q"
+ OpDecorateId %p MaxByteOffsetId %mbo
+ OpDecorateId %q MaxByteOffsetId %spec
+ %void = OpTypeVoid
+ %i32 = OpTypeInt 32 0
+ %ptr = OpTypePointer CrossWorkgroup %i32
+ %fnTy = OpTypeFunction %void %ptr %ptr
+ %mbo = OpConstant %i32 24
+ %spec = OpSpecConstantOp %i32 IAdd %mbo %mbo
+
+ %fn = OpFunction %void None %fnTy
+ %p = OpFunctionParameter %ptr
+ %q = OpFunctionParameter %ptr
+ %entry = OpLabel
+
+ OpReturn
+ OpFunctionEnd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-19.1.2/test/SubgroupsPerWorkgroup.spvasm
new/SPIRV-LLVM-Translator-19.1.3/test/SubgroupsPerWorkgroup.spvasm
--- old/SPIRV-LLVM-Translator-19.1.2/test/SubgroupsPerWorkgroup.spvasm
1970-01-01 01:00:00.000000000 +0100
+++ new/SPIRV-LLVM-Translator-19.1.3/test/SubgroupsPerWorkgroup.spvasm
2024-12-20 15:01:19.000000000 +0100
@@ -0,0 +1,24 @@
+; REQUIRES: spirv-as
+
+; RUN: spirv-as %s --target-env spv1.2 -o %t.spv
+; RUN: spirv-val %t.spv
+; RUN: llvm-spirv -r -o %t.rev.bc %t.spv
+; RUN: llvm-dis %t.rev.bc -o - | FileCheck %s
+
+ OpCapability Addresses
+ OpCapability Linkage
+ OpCapability Kernel
+ OpCapability SubgroupDispatch
+ OpMemoryModel Physical64 OpenCL
+ OpEntryPoint Kernel %fn "testSubgroupsPerWorkgroup"
+ OpExecutionMode %fn SubgroupsPerWorkgroup 8
+ %void = OpTypeVoid
+ %fnTy = OpTypeFunction %void
+
+; CHECK: !spirv.ExecutionMode = !{![[MD:[0-9]+]]}
+; CHECK: ![[MD]] = !{ptr @testSubgroupsPerWorkgroup, i32 36, i32 8}
+
+ %fn = OpFunction %void None %fnTy
+ %entry = OpLabel
+ OpReturn
+ OpFunctionEnd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/SPIRV-LLVM-Translator-19.1.2/test/SubgroupsPerWorkgroupId.spvasm
new/SPIRV-LLVM-Translator-19.1.3/test/SubgroupsPerWorkgroupId.spvasm
--- old/SPIRV-LLVM-Translator-19.1.2/test/SubgroupsPerWorkgroupId.spvasm
1970-01-01 01:00:00.000000000 +0100
+++ new/SPIRV-LLVM-Translator-19.1.3/test/SubgroupsPerWorkgroupId.spvasm
2024-12-20 15:01:19.000000000 +0100
@@ -0,0 +1,27 @@
+; REQUIRES: spirv-as
+
+; RUN: spirv-as %s --target-env spv1.2 -o %t.spv
+; RUN: spirv-val %t.spv
+; RUN: llvm-spirv -r -o %t.rev.bc %t.spv
+; RUN: llvm-dis %t.rev.bc -o - | FileCheck %s
+
+ OpCapability Addresses
+ OpCapability Linkage
+ OpCapability Kernel
+ OpCapability SubgroupDispatch
+ OpMemoryModel Physical64 OpenCL
+ OpEntryPoint Kernel %fn "testSubgroupsPerWorkgroupId"
+ OpExecutionModeId %fn SubgroupsPerWorkgroupId %uint_8
+ %void = OpTypeVoid
+ %uint = OpTypeInt 32 0
+ %uint_4 = OpConstant %uint 4
+ %uint_8 = OpSpecConstantOp %uint IAdd %uint_4 %uint_4
+ %fnTy = OpTypeFunction %void
+
+; CHECK: !spirv.ExecutionMode = !{![[MD:[0-9]+]]}
+; CHECK: ![[MD]] = !{ptr @testSubgroupsPerWorkgroupId, i32 37, i32 8}
+
+ %fn = OpFunction %void None %fnTy
+ %entry = OpLabel
+ OpReturn
+ OpFunctionEnd