Thank you both! I was indeed unaware of that, so this was precisely the answer I was hoping for. It wasn't quite clear from the documentation or the source code that LRA is what I should use; maybe something like this would help? diff --git a/gcc/target.def b/gcc/target.def index 5c8e4e1..20f2b32 100644 --- a/gcc/target.def +++ b/gcc/target.def @@ -4884,9 +4884,9 @@ DEFHOOK DEFHOOK (lra_p, "A target hook which returns true if we use LRA instead of reload pass.\ - It means that LRA was ported to the target.\ \ - The default version of this target hook returns always false.", + The default version of this target hook returns always false, but new\ + ports should use LRA.", bool, (void), default_lra_p) The removed sentence sounds to me like changes to the generic code are required for each new architecture, and that isn't the case (right?). On Mon, Feb 29, 2016 at 8:24 PM, Jeff Law <law@xxxxxxxxxx> wrote: > On 02/29/2016 06:26 AM, Manuel López-Ibáñez wrote: >> >> Do not use reload but LRA: "New things are easier to implement in LRA." >> https://gcc.gnu.org/ml/gcc-patches/2015-09/msg02144.html >> >> reload is in deep- maintenance mode: It will be removed as soon as no >> important target distributed with GCC requires it. >> >> I understand if this is not the answer you were hoping for. Perhaps >> someone else can offer a better one. >> >> (this question is probably better suited for gcc@) > > Most definitely the right answer though. I really think we should stop > accepting new ports that use reload. > > jeff >