mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
72 lines
2.4 KiB
Diff
72 lines
2.4 KiB
Diff
|
commit c391ceb1936459b70147d6f8ac389ded26a7e028
|
||
|
Author: Sven-Hendrik Haase <sh@lutzhaase.com>
|
||
|
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 <llvm/LLVMContext.h>
|
||
|
#include <llvm/Module.h>
|
||
|
#include <llvm/PassManager.h>
|
||
|
+#if OSL_LLVM_VERSION >= 32
|
||
|
+#include <llvm/IRBuilder.h>
|
||
|
+#else
|
||
|
#include <llvm/Support/IRBuilder.h>
|
||
|
+#endif
|
||
|
#include <llvm/Support/ManagedStatic.h>
|
||
|
#include <llvm/Support/MemoryBuffer.h>
|
||
|
#include <llvm/Support/raw_ostream.h>
|
||
|
+#if OSL_LLVM_VERSION >= 32
|
||
|
+#include <llvm/DataLayout.h>
|
||
|
+#else
|
||
|
#include <llvm/Target/TargetData.h>
|
||
|
+#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<llvm::Type *> &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) {
|