summaryrefslogtreecommitdiff
path: root/community/openshadinglanguage/llvm32.patch
blob: 5eb63bcf3a9f5122d341233733938a9826319331 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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) {