Mercurial > hg > octave-lyh
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 | a5aa4ac7d6b6 36fd98b9ce48 |
line wrap: on
line diff
--- a/libinterp/corefcn/pt-jit.cc +++ b/libinterp/corefcn/pt-jit.cc @@ -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 ());