commit c391ceb1936459b70147d6f8ac389ded26a7e028 Author: Sven-Hendrik Haase Date: Fri Dec 28 09:00:33 2012 +0100 Fix for LLVM 3.2 diff --git a/src/liboslexec/llvm_headers.h b/src/liboslexec/llvm_headers.h index 41a7a11..5ff4384 100644 --- a/src/liboslexec/llvm_headers.h +++ b/src/liboslexec/llvm_headers.h @@ -45,10 +45,18 @@ namespace llvm = LLVM_NAMESPACE; #include #include #include +#if OSL_LLVM_VERSION >= 32 +#include +#else #include +#endif #include #include #include +#if OSL_LLVM_VERSION >= 32 +#include +#else #include +#endif #endif /* OSL_LLVM_HEADERS_H */ diff --git a/src/liboslexec/llvm_instance.cpp b/src/liboslexec/llvm_instance.cpp index 8709c8b..3e42557 100644 --- a/src/liboslexec/llvm_instance.cpp +++ b/src/liboslexec/llvm_instance.cpp @@ -1273,13 +1273,21 @@ RuntimeOptimizer::llvm_setup_optimization_passes () // m_llvm_func_passes = new llvm::FunctionPassManager(llvm_module()); llvm::FunctionPassManager &fpm (*m_llvm_func_passes); +#if OSL_LLVM_VERSION >= 32 + fpm.add (new llvm::DataLayout(llvm_module())); +#else fpm.add (new llvm::TargetData(llvm_module())); +#endif // Specify module-wide (interprocedural optimization) passes // m_llvm_passes = new llvm::PassManager; llvm::PassManager &passes (*m_llvm_passes); +#if OSL_LLVM_VERSION >= 32 + passes.add (new llvm::DataLayout(llvm_module())); +#else passes.add (new llvm::TargetData(llvm_module())); +#endif if (shadingsys().llvm_optimize() >= 1 && shadingsys().llvm_optimize() <= 3) { // For LLVM 3.0 and higher, llvm_optimize 1-3 means to use the diff --git a/src/liboslexec/llvm_util.cpp b/src/liboslexec/llvm_util.cpp index 135da2e..4e0eefe 100644 --- a/src/liboslexec/llvm_util.cpp +++ b/src/liboslexec/llvm_util.cpp @@ -42,7 +42,11 @@ namespace pvt { llvm::Type * RuntimeOptimizer::llvm_type_union(const std::vector &types) { +#if OSL_LLVM_VERSION >= 32 + llvm::DataLayout target(llvm_module()); +#else llvm::TargetData target(llvm_module()); +#endif size_t max_size = 0; size_t max_align = 1; for (size_t i = 0; i < types.size(); ++i) {