[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