https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87627

Alexander Monakov <amonakov at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amonakov at gcc dot gnu.org

--- Comment #3 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
Noticed this back when working on -fno-plt patches:
https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00229.html

Emitting a tailcall on RTL drops REG_EQUIV notes (perhaps because in the
general case equivalences might not hold just before the sibcall when the new
arguments are being prepared), and this penalizes code generation for the whole
function.

I'm not sure why you say "Results are similarly bad for 64-bit", there's
nothing to improve in this example with three arguments all of which are on
registers and thus need to be somehow saved/restored anyway?

Reply via email to