https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117098
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|target |middle-end
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
sibcall is disabled by
if (known_eq (arg->locate.offset.constant, i))
{
/* Even though they appear to be at the same location,
if part of the outgoing argument is in registers,
they aren't really at the same location. Check for
this by making sure that the incoming size is the
same as the outgoing size. */
if (maybe_ne (arg->locate.size.constant, size_val))
sibcall_failure_1 = true;
}
(gdb) p size_val
$1 = {coeffs = {52}}
(gdb) p arg->locate.size.constant
$2 = {coeffs = {56}}