Mesa (master): gallivm: Disable frame pointer omission on LLVM 3.7.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Fri May 29 10:21:24 UTC 2015


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

Author: Jose Fonseca <jfonseca at vmware.com>
Date:   Thu May 28 15:35:14 2015 +0100

gallivm: Disable frame pointer omission on LLVM 3.7.

Reviewed-by: Roland Scheidegger <sroland at vmware.com>

---

 src/gallium/auxiliary/gallivm/lp_bld_init.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c
index 7b906c2..384ea86 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c
@@ -533,6 +533,16 @@ gallivm_compile_module(struct gallivm_state *gallivm)
       if (0) {
          debug_printf("optimizing func %s...\n", LLVMGetValueName(func));
       }
+
+   /* Disable frame pointer omission on debug/profile builds */
+   /* XXX: And workaround http://llvm.org/PR21435 */
+#if HAVE_LLVM >= 0x0307 && \
+    (defined(DEBUG) || defined(PROFILE) || \
+     defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64))
+      LLVMAddTargetDependentFunctionAttr(func, "no-frame-pointer-elim", "true");
+      LLVMAddTargetDependentFunctionAttr(func, "no-frame-pointer-elim-non-leaf", "true");
+#endif
+
       LLVMRunFunctionPassManager(gallivm->passmgr, func);
       func = LLVMGetNextFunction(func);
    }




More information about the mesa-commit mailing list