blob: 31b1bed74e2d9f2249581bf4a3497a9af1658e7c [file] [log] [blame]
diff -r 3797df921988 configure.ac
--- a/configure.ac Wed Apr 29 17:09:24 2015 -0700
+++ b/configure.ac Sun May 03 22:48:56 2015 +0200
@@ -815,8 +815,13 @@
AC_MSG_NOTICE([using -isystem for LLVM headers])])
dnl Use -isystem so we don't get warnings from llvm headers
- LLVM_CPPFLAGS="$LLVM_INCLUDE_FLAG `$LLVM_CONFIG --includedir`"
- LLVM_CXXFLAGS=
+ AX_CHECK_COMPILE_FLAG([-std=c++11],[
+ LLVM_CPPFLAGS="-std=c++11 $LLVM_INCLUDE_FLAG `$LLVM_CONFIG --includedir`"
+ LLVM_CXXFLAGS="-std=c++11"
+ ],[
+ LLVM_CPPFLAGS="$LLVM_INCLUDE_FLAG `$LLVM_CONFIG --includedir`"
+ LLVM_CXXFLAGS=
+ ])
LLVM_LDFLAGS="-L`$LLVM_CONFIG --libdir`"
@@ -860,6 +865,8 @@
OCTAVE_LLVM_CALLINST_ADDATTRIBUTE_API
OCTAVE_LLVM_RAW_FD_OSTREAM_API
OCTAVE_LLVM_LEGACY_PASSMANAGER_API
+ OCTAVE_LLVM_DATALAYOUTPASS_API
+
AC_LANG_POP(C++)
CPPFLAGS="$save_CPPFLAGS"
CXXFLAGS="$save_CXXFLAGS"
diff -r 3797df921988 libinterp/corefcn/jit-typeinfo.cc
--- a/libinterp/corefcn/jit-typeinfo.cc Wed Apr 29 17:09:24 2015 -0700
+++ b/libinterp/corefcn/jit-typeinfo.cc Sun May 03 22:48:56 2015 +0200
@@ -1208,7 +1208,7 @@
for (int op = 0; op < octave_value::num_binary_ops; ++op)
{
llvm::Twine fn_name ("octave_jit_binary_any_any_");
- fn_name = fn_name + llvm::Twine (op);
+ fn_name.concat( llvm::Twine (op) );
fn = create_internal (fn_name, any, any, any);
fn.mark_can_error ();
diff -r 3797df921988 libinterp/corefcn/pt-jit.cc
--- a/libinterp/corefcn/pt-jit.cc Wed Apr 29 17:09:24 2015 -0700
+++ b/libinterp/corefcn/pt-jit.cc Sun May 03 22:48:56 2015 +0200
@@ -59,6 +59,7 @@
#include <llvm/Bitcode/ReaderWriter.h>
#include <llvm/ExecutionEngine/ExecutionEngine.h>
+#include <llvm/ExecutionEngine/MCJIT.h>
#include <llvm/ExecutionEngine/JIT.h>
#ifdef LEGACY_PASSMANAGER
@@ -83,6 +84,7 @@
#include <llvm/IRBuilder.h>
#endif
+#include <llvm/Support/FileSystem.h>
#include <llvm/Support/raw_os_ostream.h>
#include <llvm/Support/TargetSelect.h>
@@ -2077,7 +2079,11 @@
module_pass_manager->add (llvm::createAlwaysInlinerPass ());
#ifdef HAVE_LLVM_DATALAYOUT
+#ifdef HAVE_LLVM_DATALAYOUTPASS
+ pass_manager->add (new llvm::DataLayoutPass (*engine->getDataLayout ()));
+#else
pass_manager->add (new llvm::DataLayout (*engine->getDataLayout ()));
+#endif
#else
pass_manager->add (new llvm::TargetData (*engine->getTargetData ()));
#endif
@@ -2192,7 +2198,7 @@
std::string error;
#ifdef RAW_FD_OSTREAM_ARG_IS_LLVM_SYS_FS
llvm::raw_fd_ostream fout ("test.bc", error,
- llvm::sys::fs::F_Binary);
+ llvm::sys::fs::F_Text);
#else
llvm::raw_fd_ostream fout ("test.bc", error,
llvm::raw_fd_ostream::F_Binary);
diff -r 3797df921988 m4/acinclude.m4
--- a/m4/acinclude.m4 Wed Apr 29 17:09:24 2015 -0700
+++ b/m4/acinclude.m4 Sun May 03 22:48:56 2015 +0200
@@ -1784,10 +1784,11 @@
[AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[
+ #include <llvm/Support/FileSystem.h>
#include <llvm/Support/raw_os_ostream.h>
]], [[
std::string str;
- llvm::raw_fd_ostream fout ("", str, llvm::sys::fs::F_Binary);
+ llvm::raw_fd_ostream fout ("", str, llvm::sys::fs::F_Text);
]])],
octave_cv_raw_fd_ostream_arg_is_llvm_sys_fs=yes,
octave_cv_raw_fd_ostream_arg_is_llvm_sys_fs=no)
@@ -1828,6 +1829,33 @@
fi
])
dnl
+dnl Check for llvm::DataLayoutPass API
+dnl
+AC_DEFUN([OCTAVE_LLVM_DATALAYOUTPASS_API], [
+ AC_CACHE_CHECK([check for LLVM::DataLayoutPass],
+ [octave_cv_datalayoutpass],
+ [AC_LANG_PUSH(C++)
+ save_LIBS="$LIBS"
+ LIBS="$LLVM_LIBS $LIBS"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[
+ #include <llvm/IR/DataLayout.h>
+ ]], [[
+ llvm::Module *module;
+ llvm::DataLayoutPass *datalayoutpass;
+ datalayoutpass = new llvm::DataLayoutPass (module)
+ ]])],
+ octave_cv_datalayoutpass=yes,
+ octave_cv_datalayoutpass=no)
+ LIBS="$save_LIBS"
+ AC_LANG_POP(C++)
+ ])
+ if test $octave_cv_datalayoutpass = yes; then
+ AC_DEFINE(HAVE_LLVM_DATALAYOUTPASS, 1,
+ [Define to 1 if LLVM::DataLayoutPass exists.])
+ fi
+])
+dnl
dnl Check for ar.
dnl
AC_DEFUN([OCTAVE_PROG_AR], [