mirror of
git://git.yoctoproject.org/meta-intel.git
synced 2025-07-19 12:59:03 +02:00
ispc: fix build with LLVM 15
Backport patches to fix build with LLVM 15 which is now the default version in meta-clang master. Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
parent
3b6b2b8825
commit
ad81baa4f5
|
@ -0,0 +1,33 @@
|
||||||
|
From 6a1b2ffae0cc12467838bc671e3b089924de90a6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dmitry Babokin <dmitry.y.babokin@intel.com>
|
||||||
|
Date: Thu, 5 May 2022 16:34:34 -0700
|
||||||
|
Subject: [PATCH] Bump ISPC version v1.19.0dev
|
||||||
|
|
||||||
|
Upstream-Status: Backport
|
||||||
|
|
||||||
|
Include only the LLVM specific bits and not the ispc version bump.
|
||||||
|
|
||||||
|
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||||
|
---
|
||||||
|
diff --git a/src/ispc_version.h b/src/ispc_version.h
|
||||||
|
index 0e28dfcfa..2b9d9b0cc 100644
|
||||||
|
--- a/src/ispc_version.h
|
||||||
|
+++ b/src/ispc_version.h
|
||||||
|
@@ -51,7 +51,7 @@
|
||||||
|
#define ISPC_LLVM_15_0 150000
|
||||||
|
|
||||||
|
#define OLDEST_SUPPORTED_LLVM ISPC_LLVM_10_0
|
||||||
|
-#define LATEST_SUPPORTED_LLVM ISPC_LLVM_14_0
|
||||||
|
+#define LATEST_SUPPORTED_LLVM ISPC_LLVM_15_0
|
||||||
|
|
||||||
|
#ifdef __ispc__xstr
|
||||||
|
#undef __ispc__xstr
|
||||||
|
@@ -63,7 +63,7 @@
|
||||||
|
__ispc__xstr(LLVM_VERSION_MAJOR) "." __ispc__xstr(LLVM_VERSION_MINOR) "." __ispc__xstr(LLVM_VERSION_PATCH)
|
||||||
|
|
||||||
|
#if ISPC_LLVM_VERSION < OLDEST_SUPPORTED_LLVM || ISPC_LLVM_VERSION > LATEST_SUPPORTED_LLVM
|
||||||
|
-#error "Only LLVM 11.0 - 14.0 are supported"
|
||||||
|
+#error "Only LLVM 11.0 - 14.0 and 15.0 development branch are supported"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ISPC_VERSION_STRING \
|
|
@ -0,0 +1,63 @@
|
||||||
|
From ec35a6f8e60ba77e59a6f2bfec27011e0ab34dda Mon Sep 17 00:00:00 2001
|
||||||
|
From: Arina Neshlyaeva <arina.neshlyaeva@intel.com>
|
||||||
|
Date: Tue, 23 Aug 2022 15:21:50 -0700
|
||||||
|
Subject: [PATCH] Adjust opt passes for LLVM 15
|
||||||
|
|
||||||
|
Upstream-Status: Backport
|
||||||
|
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||||
|
---
|
||||||
|
src/opt.cpp | 17 +++++++++++++++++
|
||||||
|
1 file changed, 17 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/opt.cpp b/src/opt.cpp
|
||||||
|
index 910821e26..86219f384 100644
|
||||||
|
--- a/src/opt.cpp
|
||||||
|
+++ b/src/opt.cpp
|
||||||
|
@@ -84,6 +84,9 @@
|
||||||
|
#include <llvm/Transforms/Scalar.h>
|
||||||
|
#include <llvm/Transforms/Scalar/GVN.h>
|
||||||
|
#include <llvm/Transforms/Scalar/InstSimplifyPass.h>
|
||||||
|
+#if ISPC_LLVM_VERSION >= ISPC_LLVM_15_0
|
||||||
|
+#include <llvm/Transforms/Scalar/SimpleLoopUnswitch.h>
|
||||||
|
+#endif
|
||||||
|
#include <llvm/Transforms/Utils.h>
|
||||||
|
#include <llvm/Transforms/Utils/BasicBlockUtils.h>
|
||||||
|
|
||||||
|
@@ -647,7 +650,11 @@ void ispc::Optimize(llvm::Module *module, int optLevel) {
|
||||||
|
optPM.add(llvm::createCFGSimplificationPass());
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if ISPC_LLVM_VERSION < ISPC_LLVM_15_0
|
||||||
|
+ // Starting LLVM 15.0 this pass is supported with new pass manager only (217e857)
|
||||||
|
+ // TODO: switch ISPC to new pass manager: https://github.com/ispc/ispc/issues/2359
|
||||||
|
optPM.add(llvm::createArgumentPromotionPass());
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
optPM.add(llvm::createAggressiveDCEPass());
|
||||||
|
optPM.add(llvm::createInstructionCombiningPass(), 241);
|
||||||
|
@@ -722,7 +729,11 @@ void ispc::Optimize(llvm::Module *module, int optLevel) {
|
||||||
|
optPM.add(CreateInstructionSimplifyPass());
|
||||||
|
|
||||||
|
optPM.add(llvm::createFunctionInliningPass());
|
||||||
|
+#if ISPC_LLVM_VERSION < ISPC_LLVM_15_0
|
||||||
|
+ // Starting LLVM 15.0 this pass is supported with new pass manager only (217e857)
|
||||||
|
+ // TODO: switch ISPC to new pass manager: https://github.com/ispc/ispc/issues/2359
|
||||||
|
optPM.add(llvm::createArgumentPromotionPass());
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
optPM.add(llvm::createSROAPass());
|
||||||
|
|
||||||
|
@@ -736,7 +747,13 @@ void ispc::Optimize(llvm::Module *module, int optLevel) {
|
||||||
|
optPM.add(llvm::createReassociatePass());
|
||||||
|
optPM.add(llvm::createLoopRotatePass());
|
||||||
|
optPM.add(llvm::createLICMPass());
|
||||||
|
+ // Loop unswitch pass was removed in LLVM 15.0 (fb4113).
|
||||||
|
+ // Recommended replacement: createSimpleLoopUnswitchLegacyPass
|
||||||
|
+#if ISPC_LLVM_VERSION < ISPC_LLVM_15_0
|
||||||
|
optPM.add(llvm::createLoopUnswitchPass(false));
|
||||||
|
+#else
|
||||||
|
+ optPM.add(llvm::createSimpleLoopUnswitchLegacyPass(false));
|
||||||
|
+#endif
|
||||||
|
optPM.add(llvm::createInstructionCombiningPass());
|
||||||
|
optPM.add(CreateInstructionSimplifyPass());
|
||||||
|
optPM.add(llvm::createIndVarSimplifyPass());
|
|
@ -15,6 +15,8 @@ SRC_URI = "git://github.com/ispc/ispc.git;protocol=https;branch=main \
|
||||||
file://0001-CMakeLists.txt-link-with-libclang-cpp-library-instea.patch \
|
file://0001-CMakeLists.txt-link-with-libclang-cpp-library-instea.patch \
|
||||||
file://0002-cmake-don-t-build-for-32-bit-targets.patch \
|
file://0002-cmake-don-t-build-for-32-bit-targets.patch \
|
||||||
file://0001-Fix-QA-Issues.patch \
|
file://0001-Fix-QA-Issues.patch \
|
||||||
|
file://6a1b2ffae0cc12467838bc671e3b089924de90a6.patch \
|
||||||
|
file://ec35a6f8e60ba77e59a6f2bfec27011e0ab34dda.patch \
|
||||||
"
|
"
|
||||||
SRCREV = "f7ec3aa173c816377c215d83196b5c7c3a88db1c"
|
SRCREV = "f7ec3aa173c816377c215d83196b5c7c3a88db1c"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user