http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57268
Dinar Temirbulatov <dtemirbulatov at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dtemirbulatov at gmail dot com --- Comment #3 from Dinar Temirbulatov <dtemirbulatov at gmail dot com> --- (In reply to Jakub Jelinek from comment #2) > This is weird, I've tried to bisect it, r197678 still compiled it without > hanging, r197681 ICEd somewhere in lra-constraints.c, but if I rebuild > lra-constraints.o with -O0, it instead ICEs on frame reg uses during > final_scan_insns (i.e. LRA hasn't replaced the frame pointer with hard frame > pointer or stack pointer), r197696 still ICEs, r197700 hangs. > BTW, doing -da before it hangs, I'm seeing right in *.split4 dump REG_EQUIV > notes like: > (insn 20109 70 20110 19 (set (reg/f:DI 38 r9 [19927]) > (plus:DI (reg/f:DI 7 sp) > (const_int 16 [0x10]))) 254 {*leadi} > (expr_list:REG_EQUIV (plus:DI (reg/f:DI 20 frame) > (const_int -8 [0xfffffffffffffff8])) > (nil))) > wonder if it isn't a bug that RA hasn't replaced the eliminable register in > the note with sp (or hfp). Problem was triggered by Author: amker <amker@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu Apr 11 03:55:14 2013 +0000 PR target/56124 * ira-costs.c (scan_one_insn): Check whether the source rtx of loading has side effect. And the problem in my view is in the scheduling 2 pass, it creates too long read dependents list without flushing.