This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RS6000] PR88311, mlongcall indirections are optimised away
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Alan Modra <amodra at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 14 Dec 2018 01:31:43 -0600
- Subject: Re: [RS6000] PR88311, mlongcall indirections are optimised away
- References: <20181214062537.GJ28455@bubble.grove.modra.org>
On Fri, Dec 14, 2018 at 04:55:37PM +1030, Alan Modra wrote:
> Masking CALL_LONG from the cookie was done in order to simplify and
> correct length attribute calculations for indirect calls at one point
> in my call series tidy when the indirect patterns used alternatives
> "0,n" on the cookie operand. (Leaving the CALL_LONG in place
> calculated the wrong length for long calls without fp args.)
>
> This is no longer necessary now that the indirect sysv call patterns
> explicitly test for the fp arg bits in their length attribute
> expressions. And without the CALL_LONG to disable insns like
> call_value_local_svsv, combine merrily replaces the indirect long call
> sequence with a direct call. As it should. This patch reinstates
> the CALL_LONG bit.
Thanks! Okay for trunk.
Segher
> PR rtl-optimization/88311
> * config/rs6000/rs6000.c (rs6000_call_sysv): Do not mask cookie.
> (rs6000_sibcall_sysv): Likewise.