[Mesa-dev] [PATCH] gallivm: Disable frame pointer omission on LLVM 3.7.

Roland Scheidegger sroland at vmware.com
Thu May 28 07:37:52 PDT 2015


Am 28.05.2015 um 16:35 schrieb Jose Fonseca:
> ---
>  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);
>     }
> 

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


More information about the mesa-dev mailing list