retain compat with both ABIs
This commit is contained in:
parent
0ec993d4ab
commit
46a9055740
@ -1,4 +1,4 @@
|
|||||||
From 76e9ab018c24eaed0bc83c83cf72bc4542e5f1ad Mon Sep 17 00:00:00 2001
|
From 449c00f9b32ffb71be7e8274871e1f383b046ca2 Mon Sep 17 00:00:00 2001
|
||||||
From: Dave Airlie <airlied@redhat.com>
|
From: Dave Airlie <airlied@redhat.com>
|
||||||
Date: Mon, 6 Dec 2021 13:49:10 +1000
|
Date: Mon, 6 Dec 2021 13:49:10 +1000
|
||||||
Subject: [PATCH] optimizer: restore previous ABI.
|
Subject: [PATCH] optimizer: restore previous ABI.
|
||||||
@ -15,11 +15,11 @@ Broke the C++ ABI for spirv-tools shared libraries on Linux, for not a great rea
|
|||||||
Restore the previous ABI.
|
Restore the previous ABI.
|
||||||
---
|
---
|
||||||
include/spirv-tools/optimizer.hpp | 3 ++-
|
include/spirv-tools/optimizer.hpp | 3 ++-
|
||||||
source/opt/optimizer.cpp | 17 +++++++++++------
|
source/opt/optimizer.cpp | 5 +++++
|
||||||
2 files changed, 13 insertions(+), 7 deletions(-)
|
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/include/spirv-tools/optimizer.hpp b/include/spirv-tools/optimizer.hpp
|
diff --git a/include/spirv-tools/optimizer.hpp b/include/spirv-tools/optimizer.hpp
|
||||||
index 21059cbe..a0314b5f 100644
|
index 21059cbe..d9c511af 100644
|
||||||
--- a/include/spirv-tools/optimizer.hpp
|
--- a/include/spirv-tools/optimizer.hpp
|
||||||
+++ b/include/spirv-tools/optimizer.hpp
|
+++ b/include/spirv-tools/optimizer.hpp
|
||||||
@@ -519,7 +519,8 @@ Optimizer::PassToken CreateDeadInsertElimPass();
|
@@ -519,7 +519,8 @@ Optimizer::PassToken CreateDeadInsertElimPass();
|
||||||
@ -28,58 +28,26 @@ index 21059cbe..a0314b5f 100644
|
|||||||
// is not allowed.
|
// is not allowed.
|
||||||
-Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface = false);
|
-Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface = false);
|
||||||
+Optimizer::PassToken CreateAggressiveDCEPass();
|
+Optimizer::PassToken CreateAggressiveDCEPass();
|
||||||
+Optimizer::PassToken CreateAggressiveDCEPassPreserveInterface();
|
+Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface);
|
||||||
|
|
||||||
// Creates a remove-unused-interface-variables pass.
|
// Creates a remove-unused-interface-variables pass.
|
||||||
// Removes variables referenced on the |OpEntryPoint| instruction that are not
|
// Removes variables referenced on the |OpEntryPoint| instruction that are not
|
||||||
diff --git a/source/opt/optimizer.cpp b/source/opt/optimizer.cpp
|
diff --git a/source/opt/optimizer.cpp b/source/opt/optimizer.cpp
|
||||||
index e74db26f..d5534d08 100644
|
index e74db26f..32a3d01e 100644
|
||||||
--- a/source/opt/optimizer.cpp
|
--- a/source/opt/optimizer.cpp
|
||||||
+++ b/source/opt/optimizer.cpp
|
+++ b/source/opt/optimizer.cpp
|
||||||
@@ -419,22 +419,22 @@ bool Optimizer::RegisterPassFromFlag(const std::string& flag) {
|
@@ -764,6 +764,11 @@ Optimizer::PassToken CreateLocalMultiStoreElimPass() {
|
||||||
RegisterPass(CreateSimplificationPass());
|
|
||||||
RegisterPass(CreateDeadBranchElimPass());
|
|
||||||
RegisterPass(CreateBlockMergePass());
|
|
||||||
- RegisterPass(CreateAggressiveDCEPass(true));
|
|
||||||
+ RegisterPass(CreateAggressiveDCEPassPreserveInterface());
|
|
||||||
} else if (pass_name == "inst-desc-idx-check") {
|
|
||||||
RegisterPass(CreateInstBindlessCheckPass(7, 23, true, true));
|
|
||||||
RegisterPass(CreateSimplificationPass());
|
|
||||||
RegisterPass(CreateDeadBranchElimPass());
|
|
||||||
RegisterPass(CreateBlockMergePass());
|
|
||||||
- RegisterPass(CreateAggressiveDCEPass(true));
|
|
||||||
+ RegisterPass(CreateAggressiveDCEPassPreserveInterface());
|
|
||||||
} else if (pass_name == "inst-buff-oob-check") {
|
|
||||||
RegisterPass(CreateInstBindlessCheckPass(7, 23, false, false, true, true));
|
|
||||||
RegisterPass(CreateSimplificationPass());
|
|
||||||
RegisterPass(CreateDeadBranchElimPass());
|
|
||||||
RegisterPass(CreateBlockMergePass());
|
|
||||||
- RegisterPass(CreateAggressiveDCEPass(true));
|
|
||||||
+ RegisterPass(CreateAggressiveDCEPassPreserveInterface());
|
|
||||||
} else if (pass_name == "inst-buff-addr-check") {
|
|
||||||
RegisterPass(CreateInstBuffAddrCheckPass(7, 23));
|
|
||||||
- RegisterPass(CreateAggressiveDCEPass(true));
|
|
||||||
+ RegisterPass(CreateAggressiveDCEPassPreserveInterface());
|
|
||||||
} else if (pass_name == "convert-relaxed-to-half") {
|
|
||||||
RegisterPass(CreateConvertRelaxedToHalfPass());
|
|
||||||
} else if (pass_name == "relax-float-ops") {
|
|
||||||
@@ -764,9 +764,14 @@ Optimizer::PassToken CreateLocalMultiStoreElimPass() {
|
|
||||||
MakeUnique<opt::SSARewritePass>());
|
MakeUnique<opt::SSARewritePass>());
|
||||||
}
|
}
|
||||||
|
|
||||||
-Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface) {
|
|
||||||
+Optimizer::PassToken CreateAggressiveDCEPass() {
|
+Optimizer::PassToken CreateAggressiveDCEPass() {
|
||||||
return MakeUnique<Optimizer::PassToken::Impl>(
|
+ return MakeUnique<Optimizer::PassToken::Impl>(
|
||||||
- MakeUnique<opt::AggressiveDCEPass>(preserve_interface));
|
|
||||||
+ MakeUnique<opt::AggressiveDCEPass>(false));
|
+ MakeUnique<opt::AggressiveDCEPass>(false));
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+Optimizer::PassToken CreateAggressiveDCEPassPreserveInterface() {
|
Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface) {
|
||||||
+ return MakeUnique<Optimizer::PassToken::Impl>(
|
return MakeUnique<Optimizer::PassToken::Impl>(
|
||||||
+ MakeUnique<opt::AggressiveDCEPass>(true));
|
MakeUnique<opt::AggressiveDCEPass>(preserve_interface));
|
||||||
}
|
|
||||||
|
|
||||||
Optimizer::PassToken CreateRemoveUnusedInterfaceVariablesPass() {
|
|
||||||
--
|
--
|
||||||
2.33.1
|
2.33.1
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
Name: spirv-tools
|
Name: spirv-tools
|
||||||
Version: 2021.4
|
Version: 2021.4
|
||||||
Release: 2%{?gitrel}%{?dist}
|
Release: 3%{?gitrel}%{?dist}
|
||||||
Summary: API and commands for processing SPIR-V modules
|
Summary: API and commands for processing SPIR-V modules
|
||||||
|
|
||||||
License: ASL 2.0
|
License: ASL 2.0
|
||||||
@ -90,6 +90,9 @@ Development files for %{name}
|
|||||||
%{_libdir}/pkgconfig/SPIRV-Tools.pc
|
%{_libdir}/pkgconfig/SPIRV-Tools.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Dec 10 2021 Dave Airlie <airlied@redhat.com> - 2021.4-3.20211110.git21e3f68
|
||||||
|
- Retain compat with both ABIs
|
||||||
|
|
||||||
* Mon Dec 06 2021 Dave Airlie <airlied@redhat.com> - 2021.4-2.20211110.git21e3f68
|
* Mon Dec 06 2021 Dave Airlie <airlied@redhat.com> - 2021.4-2.20211110.git21e3f68
|
||||||
- Restore previous ABI
|
- Restore previous ABI
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user