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: [4.9 PATCH, alpha]: Switch alpha to LRA


On Mon, Apr 22, 2013 at 7:33 PM, Jeff Law <law@redhat.com> wrote:

>> Unfortunately, alphas are much more tied to reload than it was hoped.
>> While latest alphas (with FIX and BWX ISAs) survived transition to LRA
>> without problems, further testing on ev4 and ev5 triggered various
>> problems, one of them is PR57032 [1] that exposed rather unique way of
>> handling aligned/nonaligned memory operands.
>>
>> The patch was reverted.
>>
>> I suspect that fixing older alphas to live with LRA would be quite
>> involved task, and I guess nobody (including me) wants to spend
>> considerable amount of time on a dying architecture. Consequently,
>> this also means that alphas will die together with reload as far as
>> gcc is concerned.
>>
>> [1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57032
>
> Would it make sense to deprecate the older Alpha implementations without
> killing the "modern" ones?

Looking at [1], I would propose a cutoff point at ev6.

IIUC, the core of the problem is with *movdi, *movhi and *movqi
patterns, where moves to/from memory are blocked for FP (there remains
"Q" constraint in the *movdi case, ignored by LRA) and integer regs.
This situation gets eventually fixed during reload (please see various
instances of reload_in_progress), which is somehow incompatible with
LRA.

[1] http://en.wikipedia.org/wiki/DEC_Alpha

Uros.


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