This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: reload autoinc fix


On 01/07/14 14:06, Andrew Pinski wrote:
On Tue, Jan 7, 2014 at 12:55 PM, Jeff Law <law@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]