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