From: Marek Olšák Date: Fri, 1 Jul 2016 18:09:47 +0000 (+0200) Subject: gallivm: set LLVMNoUnwindAttribute on all intrinsics X-Git-Tag: upstream/17.1.0~8182 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d7b6f90684e415b8e9f2d5cd30b9503a7e39a00e;p=platform%2Fupstream%2Fmesa.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 0a8f996..f12e735 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);