On Mon, Apr 22, 2013 at 7:33 PM, Jeff Law <l...@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.