| 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], [ |