On Thu, Mar 11, 2021 at 04:52:18AM -0300, Alexandre Oliva wrote: > Several ipa-sra tests fail because -mlongcall on powerpc is a > TYPE_ATTRIBUTE, and those disable ipa-sra. > > This local workaround disables -mlongcall for the failing tests on > powerpc*-*-vxworks*, so they get a chance to run even in kernel mode. > > (AdaCore has -mlongcall enabled for powerpc*-wrs-vxworks* kernel-mode > targets.) > > This was regstrapped on x86_64-linux-gnu and ppc64-linux-gnu, and tested > with a cross to a ppc64-vxworks7r2 with -mlongcall enabled by default. > > I was leaning towards maintaing this change internal, but I thought it > wouldn't hurt to ask whether it's ok to install. > > I wonder whether it wouldn't be more desirable to have an alternate > implementation of -mlongcall on ppc that didn't conflict with IPA-SRA, > and IIRC with some scenarios involving C++ templates.
It has been this way for decades (well, since 2002, not *quite* multiple decades yet). It also is almost never necessary to use: not many programs have more than 32MB in a single module (and you do not need this for cross-module calls). > E.g., on ARM, -mlong-calls doesn't add an attribute to every function, > it just changes a default, that attributes short_call and long_call may > then override for specific functions. Would a similar implementation be > acceptable for ppc? That is how it works already! See the first entry on https://gcc.gnu.org/onlinedocs/gcc/PowerPC-Function-Attributes.html Given Martin's and Richard's replies, I think we should not take this patch. Sorry. Segher