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 <[email protected]>
>
> 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