changeset 24245:b3b7677334f6

jit: pt-jit.cc: Use createBasicAAWrapperPass instead of createBasicAliasAnalysisPass
author Julien Bect <jbect@users.sourceforge.net>
date Mon, 24 Jul 2017 13:49:15 +0200
parents 9eef7983b9bc
children d74d01e39f91
files configure.ac libinterp/parse-tree/pt-jit.cc
diffstat 2 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/configure.ac	Mon Jul 24 13:54:24 2017 +0200
+++ b/configure.ac	Mon Jul 24 13:49:15 2017 +0200
@@ -1685,6 +1685,7 @@
     fi
 
     AC_CHECK_HEADERS([llvm/IR/Verifier.h])
+    AC_CHECK_HEADERS([llvm/Analysis/BasicAliasAnalysis.h])
 
     OCTAVE_LLVM_FUNCTION_ADDATTRIBUTE_API
     OCTAVE_LLVM_FUNCTION_ADDFNATTR_API
--- a/libinterp/parse-tree/pt-jit.cc	Mon Jul 24 13:54:24 2017 +0200
+++ b/libinterp/parse-tree/pt-jit.cc	Mon Jul 24 13:49:15 2017 +0200
@@ -55,6 +55,13 @@
 #  include <llvm/Analysis/Verifier.h>
 #endif
 
+#if defined (HAVE_LLVM_ANALYSIS_BASICALIASANALYSIS_H)
+// In LLVM 3.8.x and later, we use createBasicAAWrapperPass from:
+#  include <llvm/Analysis/BasicAliasAnalysis.h>
+#endif
+// In LLVM 3.7.x and earlier, we use createBasicAliasAnalysisPass
+// from llvm/Analysis/Passes.h (already included above)
+
 #include <llvm/Bitcode/ReaderWriter.h>
 #include <llvm/ExecutionEngine/ExecutionEngine.h>
 #include <llvm/ExecutionEngine/JIT.h>
@@ -2080,8 +2087,15 @@
 #else
     pass_manager->add (new llvm::TargetData (*engine->getTargetData ()));
 #endif
+
     pass_manager->add (llvm::createCFGSimplificationPass ());
+
+#if defined (HAVE_LLVM_ANALYSIS_BASICALIASANALYSIS_H)
+    pass_manager->add (llvm::createBasicAAWrapperPass ());
+#else
     pass_manager->add (llvm::createBasicAliasAnalysisPass ());
+#endif
+
     pass_manager->add (llvm::createPromoteMemoryToRegisterPass ());
     pass_manager->add (llvm::createInstructionCombiningPass ());
     pass_manager->add (llvm::createReassociatePass ());