This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r267123 - in /trunk/gcc: ChangeLog config/rs600...
- From: amodra at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Fri, 14 Dec 2018 09:03:50 -0000
- Subject: r267123 - in /trunk/gcc: ChangeLog config/rs600...
Author: amodra
Date: Fri Dec 14 09:03:50 2018
New Revision: 267123
URL: https://gcc.gnu.org/viewcvs?rev=267123&root=gcc&view=rev
Log:
[RS6000] PR88311, mlongcall indirections are optimised away
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.
PR rtl-optimization/88311
* config/rs6000/rs6000.c (rs6000_call_sysv): Do not mask cookie.
(rs6000_sibcall_sysv): Likewise.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.c