From: Marek Olšák Date: Fri, 1 Jul 2016 18:09:47 +0000 (+0200) Subject: gallivm: set LLVMNoUnwindAttribute on all intrinsics X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d7b6f90684e415b8e9f2d5cd30b9503a7e39a00e;p=mesa.git gallivm: set LLVMNoUnwindAttribute on all intrinsics RadeonSI stats: Mostly 0% difference, but Valley shows a small improvement: Application Files SGPRs VGPRs SpillSGPR SpillVGPR Code Size LDS Max Waves Waits unigine_valley 278 0.00 % -0.29 % 0.00 % 0.00 % 0.01 % 0.00 % 0.17 % 0.00 % Reviewed-by: Jose Fonseca --- diff --git a/src/gallium/auxiliary/gallivm/lp_bld_intr.c b/src/gallium/auxiliary/gallivm/lp_bld_intr.c index 0a8f996a63e..f12e735b5ee 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_intr.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_intr.c @@ -145,8 +145,10 @@ lp_build_intrinsic(LLVMBuilderRef builder, function = lp_declare_intrinsic(module, name, ret_type, arg_types, num_args); - if (attr) - LLVMAddFunctionAttr(function, attr); + /* NoUnwind indicates that the intrinsic never raises a C++ exception. + * Set it for all intrinsics. + */ + LLVMAddFunctionAttr(function, attr | LLVMNoUnwindAttribute); if (gallivm_debug & GALLIVM_DEBUG_IR) { lp_debug_dump_value(function);