[Bug rtl-optimization/58048] [4.8/4.9 Regression] internal compiler error: Max. number of generated reload insns per insn is achieved (90)

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Aug 2 08:54:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58048

--- Comment #7 from Uroš Bizjak <ubizjak at gmail dot com> ---
Looking a bit into this problem:

A reload reg is inserted before "fscale" asm, but the chosen alternative can
move an immediate to memory directly.

    Inserting insn reload before:
  227: r184:SI=0x20

          alt=0,overall=13,losers=2,rld_nregs=1
          alt=1,overall=9,losers=1,rld_nregs=0
          alt=4,overall=19,losers=2 -- reject
          alt=10,overall=19,losers=2 -- reject
     Choosing alt 1 in insn 227:  (0) m  (1) re {*movsi_internal}
      Creating newreg=185 from oldreg=184, assigning class NO_REGS to r185
  227: r185:SI=0x20
    Inserting insn reload after:

The alternative does not need a register, so class NO_REGS is correct. However,
it looks that follow-up code is not prepared for this and trips into a loop,
trying to assign another reload reg.


More information about the Gcc-bugs mailing list