diff libinterp/corefcn/pt-jit.cc @ 17031:38bcfd413db0

Handle LLVM API incoherence. Octave now works with LLVM 3.0, 3.1, and 3.2 * configure.ac: Call LLVM API incoherence checks. * jit-typeinfo.cc: Check new defines. * pt-jit.cc: Check new defines. * m4/acinclude.m4: Add LLVM API incoherence checks.
author LYH <lyh.kernel@gmail.com>
date Wed, 01 May 2013 17:54:56 +0800
parents e6ddaa65a777
children 36fd98b9ce48
line wrap: on
line diff
--- a/libinterp/corefcn/pt-jit.cc	Sun Jul 21 17:26:39 2013 -0400
+++ b/libinterp/corefcn/pt-jit.cc	Wed May 01 17:54:56 2013 +0800
@@ -55,10 +55,18 @@
 #include <llvm/ExecutionEngine/JIT.h>
 #include <llvm/Module.h>
 #include <llvm/PassManager.h>
+#ifdef IRBUILDER_HEADER_IN_SUPPORT_DIR
 #include <llvm/Support/IRBuilder.h>
+#else
+#include <llvm/IRBuilder.h>
+#endif
 #include <llvm/Support/raw_os_ostream.h>
 #include <llvm/Support/TargetSelect.h>
+#ifdef HAVE_DATALAYOUT
+#include <llvm/DataLayout.h>
+#else
 #include <llvm/Target/TargetData.h>
+#endif
 #include <llvm/Transforms/IPO.h>
 #include <llvm/Transforms/Scalar.h>
 
@@ -1864,7 +1872,11 @@
   module_pass_manager->add (llvm::createAlwaysInlinerPass ());
 
   pass_manager = new llvm::FunctionPassManager (module);
-  pass_manager->add (new llvm::TargetData(*engine->getTargetData ()));
+#if HAVE_DATALAYOUT
+  pass_manager->add (new llvm::DataLayout (*engine->getDataLayout ()));
+#else
+  pass_manager->add (new llvm::TargetData (*engine->getTargetData ()));
+#endif
   pass_manager->add (llvm::createCFGSimplificationPass ());
   pass_manager->add (llvm::createBasicAliasAnalysisPass ());
   pass_manager->add (llvm::createPromoteMemoryToRegisterPass ());