[Mesa-dev] [PATCH] gallivm: set LLVMNoUnwindAttribute on all intrinsics

Jose Fonseca jfonseca at vmware.com
Tue Jul 5 10:52:36 UTC 2016


On 05/07/16 10:36, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> 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 %
> ---
>   src/gallium/auxiliary/gallivm/lp_bld_intr.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
>
> 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);
>

Reviewed-by: Jose Fonseca <jfonseca at vmware.com>


BTW, there are functions in llvmpipe besides instrinsics that never 
generate C++ exceptions.  We should eventually set this attr on all them 
then.


Jose


More information about the mesa-dev mailing list