On Fri, 2 May 2025, Richard Biener wrote:

> I'd appreciate target maintainers of targets with a -mlra to
> enable LRA by default and unconditionally (aka, remove -mlra)
> themselves.  Eventually that work will be done in a more-or-less
> unchecked way later.

 I do appreciate the desire to remove legacy reload, but regrettably at 
this time I cannot guarantee I'll find the resources to fix the backends I 
care about in the GCC 16 timeframe:

- A few years ago I updated the VAX backend to at least complete building 
  a cross-compiler successfully, but there are still ICE regressions.  
  Also code quality is awful as suddenly the backend has lost the ability 
  to make use of most of the address modes, as if the CPU only had the 
  most basic RISC-style base+offset address mode.  I don't consider it a 
  showstopper though.

  However an outstanding problem with the backend has been that it hasn't 
  implemented an exception unwinder.  Needless to say that makes the C++ 
  frontend unusuable for most cases (VAX-host GCC itself being a notable 
  exception), so any time I find for VAX/GCC effort I'll have to dedicate 
  instead to this issue on a priority basis.  It's tough and I'm still not 
  sure if DWARF is capable enough (and then at what initial version of the 
  standard) to express the semantics required let alone how much extra 
  code will be required on the libgcc side, so it won't be quick.  Scarce 
  resources on exception unwinder internals don't help even though the 
  principle of operation appears straightforward at the high level.

- I have only learnt last year that the Alpha backend also needs some work 
  here and it appears that it relies on a hack or a bunch within reload to 
  propagate alignment information required for non-BWX targets to produce 
  correct code.  I haven't been able to investigate it further, but it 
  seems it may require considerable effort to solve and as it stands the 
  backend doesn't build if switched to LRA.  And then last year's sudden 
  removal of non-BWX support from the Linux kernel has consumed my already 
  limited time for work on a solution to bring it back instead (with more 
  effort still required, also as a matter of priority).

 All in all I do keep the switch to LRA in mind and maybe I'll be able to 
move forward in the GCC 16 development cycle after all, but all I can do 
is entirely in my free time and that seems to be very limited recently and 
plagued with emergencies to handle.

  Maciej

Reply via email to