Hi,
I was hit by an ICE in reload. You know how difficult to debug it ☺.
My primary suspect is that eliminate_regs_in_insn transforms
(insn 680 679 681 84 src/weighted_prediction.c:729 (set (reg:DF 1 r1)
(mem:DF (plus:SI (mult:SI (reg:SI 596 [ ivtmp.474 ])
(const_int 8 [0x8]))
(reg/f:SI 1105)) [3 S8 A8])) 448 {*ldl_dfmode} (nil))
To:
(insn 680 679 681 84 src/weighted_prediction.c:729 (set (reg:DF 1 r1)
(mem:DF (plus:SI (plus:SI (mult:SI (reg:SI 596 [ ivtmp.474 ])
(const_int 8 [0x8]))
(reg/f:SI 57 r57))
(const_int 40 [0x28])) [3 S8 A8])) 448 {*ldl_dfmode} (nil))
The latter has illegal memory address mode, and r57 is our stack pointer.
Since reload part is still half mystery to me, I wonder whether this is an
wrong transformation and causes the following ICE. Is it allowed that
Eliminate_regs_in_insn to generate such illegal instruction?
Cheers,
Bingfeng Mei