Hi!

On Wed, Dec 13, 2023 at 10:21:43AM +0100, Jakub Jelinek wrote:
> The following patch makes most of x86 MD builtins nothrow,leaf
> (like most middle-end builtins are).  For -fnon-call-exceptions it
> doesn't nothrow, better might be to still add it if the builtins
> don't read or write memory and can't raise floating point exceptions,
> but we don't have such information readily available, so the patch
> uses just !flag_non_call_exceptions for now.
> Not sure if we shouldn't have some exceptions for the leaf attribute,
> e.g. wonder about EMMS/FEMMS and the various xsave/xrstor etc. builtins,
> pedantically none of those builtins do anything that leaf functions
> are forbidden to do (having callbacks, calling functions from current TU,
> longjump into the current TU), but sometimes non-leaf is also used on
> really complex functions to prevent some unwanted optimizations.
> That said, haven't run into any problems as is with the patch.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
> 
> 2023-12-13  Jakub Jelinek  <ja...@redhat.com>
> 
>       PR target/112962
>       * config/i386/i386-builtins.cc (ix86_builtins): Increase by one
>       element.
>       (def_builtin): If not -fnon-call-exceptions, set TREE_NOTHROW on
>       the builtin FUNCTION_DECL.  Add leaf attribute to DECL_ATTRIBUTES.
>       (ix86_add_new_builtins): Likewise.

I'd like to ping this patch.  Bootstrapped/regtested fine again last night.

        Jakub

Reply via email to