Mesa (master): st/clover: Fix build against LLVM SVN >= r215967 v2

Tom Stellard tstellar at kemper.freedesktop.org
Thu Aug 21 12:56:21 UTC 2014


Module: Mesa
Branch: master
Commit: 3ba225c1ab3682fcba33c8b4103afed22e3b3621
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ba225c1ab3682fcba33c8b4103afed22e3b3621

Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Thu Aug 21 06:30:22 2014 -0400

st/clover: Fix build against LLVM SVN >= r215967 v2

v2: Tom Stellard
  - Properly destroy the Module

Reviewed-by: Francisco Jerez <currojerez at riseup.net>

---

 src/gallium/state_trackers/clover/llvm/invocation.cpp |   16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index 5d2efc4..d351bc5 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -234,7 +234,11 @@ namespace {
       memcpy(address_spaces, c.getTarget().getAddressSpaceMap(),
                                                         sizeof(address_spaces));
 
+#if HAVE_LLVM >= 0x0306
+      return act.takeModule().release();
+#else
       return act.takeModule();
+#endif
    }
 
    void
@@ -415,13 +419,21 @@ clover::compile_program_llvm(const compat::string &source,
 
    internalize_functions(mod, kernels);
 
+   module m;
    // Build the clover::module
    switch (ir) {
       case PIPE_SHADER_IR_TGSI:
          //XXX: Handle TGSI
          assert(0);
-         return module();
+         m = module();
+         break;
       default:
-         return build_module_llvm(mod, kernels, address_spaces);
+         m = build_module_llvm(mod, kernels, address_spaces);
+         break;
    }
+#if HAVE_LLVM >= 0x0306
+   // LLVM 3.6 and newer, the user takes ownership of the module.
+   delete mod;
+#endif
+   return m;
 }




More information about the mesa-commit mailing list