OBS-URL: https://build.opensuse.org/package/show/devel:tools:statica/klee?expand=0&rev=51
63 lines
2.3 KiB
Diff
63 lines
2.3 KiB
Diff
From: Jiri Slaby <jirislaby@gmail.com>
|
|
Date: Fri, 15 Jun 2018 07:57:23 +0200
|
|
Subject: llvm38: handle optimization passes changes
|
|
Patch-mainline: no
|
|
|
|
createFunctionAttrsPass was split to createPostOrderFunctionAttrsPass
|
|
and createReversePostOrderFunctionAttrsPass in LLVM commit e96fb9ab15d4.
|
|
|
|
createGlobalsModRefPass was changed to createGlobalsAAWrapperPass in
|
|
LLVM commit 9146833fa313.
|
|
|
|
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
|
---
|
|
lib/Module/Optimize.cpp | 15 +++++++++++++++
|
|
1 file changed, 15 insertions(+)
|
|
|
|
diff --git a/lib/Module/Optimize.cpp b/lib/Module/Optimize.cpp
|
|
index 64e4863f70b3..df7b147d0abe 100644
|
|
--- a/lib/Module/Optimize.cpp
|
|
+++ b/lib/Module/Optimize.cpp
|
|
@@ -35,6 +35,10 @@
|
|
#include "llvm/Analysis/Verifier.h"
|
|
#endif
|
|
|
|
+#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 8)
|
|
+#include "llvm/Analysis/GlobalsModRef.h"
|
|
+#endif
|
|
+
|
|
using namespace llvm;
|
|
|
|
// Don't verify at the end
|
|
@@ -102,7 +106,12 @@ static void AddStandardCompilePasses(klee::LegacyLLVMPassManagerTy &PM) {
|
|
addPass(PM, createCFGSimplificationPass()); // Clean up after IPCP & DAE
|
|
|
|
addPass(PM, createPruneEHPass()); // Remove dead EH info
|
|
+#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 8)
|
|
+ addPass(PM, createPostOrderFunctionAttrsPass());
|
|
+ addPass(PM, createReversePostOrderFunctionAttrsPass()); // Deduce function attrs
|
|
+#else
|
|
addPass(PM, createFunctionAttrsPass()); // Deduce function attrs
|
|
+#endif
|
|
|
|
if (!DisableInline)
|
|
addPass(PM, createFunctionInliningPass()); // Inline small functions
|
|
@@ -217,8 +226,14 @@ void Optimize(Module *M, const std::string &EntryPoint) {
|
|
addPass(Passes, createScalarReplAggregatesPass()); // Break up allocas
|
|
|
|
// Run a few AA driven optimizations here and now, to cleanup the code.
|
|
+#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 8)
|
|
+ addPass(Passes, createPostOrderFunctionAttrsPass());
|
|
+ addPass(Passes, createReversePostOrderFunctionAttrsPass()); // Add nocapture
|
|
+ addPass(Passes, createGlobalsAAWrapperPass()); // IP alias analysis
|
|
+#else
|
|
addPass(Passes, createFunctionAttrsPass()); // Add nocapture
|
|
addPass(Passes, createGlobalsModRefPass()); // IP alias analysis
|
|
+#endif
|
|
|
|
addPass(Passes, createLICMPass()); // Hoist loop invariants
|
|
addPass(Passes, createGVNPass()); // Remove redundancies
|
|
--
|
|
2.17.1
|
|
|