summaryrefslogtreecommitdiff
path: root/dev-lang/julia/files/julia-1.6.5-llvm_bad_perf_fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/julia/files/julia-1.6.5-llvm_bad_perf_fix.patch')
-rw-r--r--dev-lang/julia/files/julia-1.6.5-llvm_bad_perf_fix.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/dev-lang/julia/files/julia-1.6.5-llvm_bad_perf_fix.patch b/dev-lang/julia/files/julia-1.6.5-llvm_bad_perf_fix.patch
new file mode 100644
index 000000000000..f38c26bfd52e
--- /dev/null
+++ b/dev-lang/julia/files/julia-1.6.5-llvm_bad_perf_fix.patch
@@ -0,0 +1,33 @@
+Patch from
+ https://github.com/JuliaLang/julia/commit/7df16be0.patch
+fixes bad performance with LLVM 12
+
+From 7df16be0bfafee6d304ee0690366fa33845cc8d6 Mon Sep 17 00:00:00 2001
+From: Valentin Churavy <v.churavy@gmail.com>
+Date: Wed, 12 May 2021 18:44:40 -0400
+Subject: [PATCH] [LLVM] add correlated value propagation after jump threading
+
+---
+ src/aotcompile.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/aotcompile.cpp b/src/aotcompile.cpp
+index db3f9f4b0e22..4cc22d127528 100644
+--- a/src/aotcompile.cpp
++++ b/src/aotcompile.cpp
+@@ -692,6 +692,7 @@ void addOptimizationPasses(legacy::PassManagerBase *PM, int opt_level,
+ PM->add(createSROAPass());
+ PM->add(createInstSimplifyLegacyPass());
+ PM->add(createJumpThreadingPass());
++ PM->add(createCorrelatedValuePropagationPass());
+
+ PM->add(createReassociatePass());
+
+@@ -743,6 +744,7 @@ void addOptimizationPasses(legacy::PassManagerBase *PM, int opt_level,
+ // loops over Union-typed arrays to vectorize.
+ PM->add(createInstructionCombiningPass());
+ PM->add(createJumpThreadingPass());
++ PM->add(createCorrelatedValuePropagationPass());
+ PM->add(createDeadStoreEliminationPass());
+
+ // More dead allocation (store) deletion before loop optimization