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

Paolo Bonzini <bonzini at gnu dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|INVALID                     |---
             Status|RESOLVED                    |UNCONFIRMED

--- Comment #3 from Paolo Bonzini <bonzini at gnu dot org> ---
> %rbx is callee-saved register (so, preserved across function calls).
>
> These push/pop instructions are there to implement the above requirement.

Yes, it is.

The point is to understand why interprocedural RA chooses to use a callee-saved
register:

- it could be because the push/pop is needed anyway to align the stack, as the
reporter suggests, and then the question is whether the alignment is needed

- it could be for other reasons, for example to use the high-byte register %bh,
and in this case the question is whether this is indeed necessary or a missed
optimization in IPA RA.

Reply via email to