On 01/07/14 14:06, Andrew Pinski wrote:
On Tue, Jan 7, 2014 at 12:55 PM, Jeff Law <l...@redhat.com> wrote:
On 01/07/14 09:16, Bernd Schmidt wrote:
This is PR56791. The address inside of an autoinc is reloaded, and the
autoinc is reloaded, but the reload insns are emitted in the wrong order.
As far as I can tell, this is because find_reloads_address_1 has two
methods of pushing a reload for an autoinc, one of them using the
previously identified type, and the other (better one) using
RELOAD_OTHER. If we previously reloaded an inner part of the address,
the use of RELOAD_OTHER is mismatched and leads to the wrong order of
insns.
This patch just remembers if we've pushed a reload, and forces the
optimization to be skipped in that case. Bootstrapped and tested on
x86_64-linux (with lra_p disabled but still somewhat pointlessly); John
Anglin said in the PR that it tests ok on PA. Will commit in a few days
if no objections.
No objections to the substance of the patch, though I think the comment
could be clearer.
Though my question is what target does this matter since ARM has moved
away from reload and other targets should do the same?
PA which is were it was reported, m68k, probably others. While I agree
they should move towards LRA, we shouldn't just let them break.
Jeff