http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38644

Jeffrey A. Law <law at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |law at redhat dot com

--- Comment #34 from Jeffrey A. Law <law at redhat dot com> 2011-02-07 16:27:24 
UTC ---
Typically the right thing to do is to block all memory motions across a change
in the stack pointer.    It's somewhat overly pessimistic, but in reality the
few motions lost aren't going to be performance critical.

In the past each backend has emitted the blockage/barrier and it typically
happened soon after the port was converted to use RTL prologues/epilogues... 
That's probably the main reason why this was never fixed in the scheduler
itself -- the first couple ports emitted a blockage and after that it became
normal practice.

I would support both emitting the suitable blockage insn in the ARM backend or
adding a dependency between the stack pointer adjustment insn and all memory
insns in the scheduler.  Either is IMHO acceptable given history.  The first
would be slightly preferred during this late stage of development with the
latter being more appropriate in early stage development.

Reply via email to