[Bug target/17428] [4.0 Regression] internal compiler error: in spill_failure, at reload1.c:1880
rakdver at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Sep 21 11:49:00 GMT 2004
------- Additional Comments From rakdver at gcc dot gnu dot org 2004-09-21 11:49 -------
This is caused by speculative prefetching. The problem is in code like this:
(insn 14 12 15 1 (set (reg:SI 1 dx)
(const_int 0 [0x0])) -1 (nil)
(nil))
(insn 15 14 16 1 (set (reg:SI 0 ax)
(mem/s:SI (reg/f:SI 62 [ ivtmp.5 ]) [2 a S4 A8])) -1 (nil)
(nil))
(call_insn 16 15 17 1 (call (mem:QI (symbol_ref:SI ("foo") [flags 0x3]
<function_decl 0x40206ae0 foo>) [0 S1 A8])
(const_int 0 [0x0])) -1 (nil)
(expr_list:REG_EH_REGION (const_int 0 [0x0])
(nil))
(expr_list (use (reg:SI 0 ax))
(expr_list (use (reg:SI 1 dx))
(nil))))
Now we issue a profiling code for mem in insn 15. This causes life range
of dx to be prolonged, and ICE follows.
safe_insert_insn_on_edge needs to be extended to handle this, somehow.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17428
More information about the Gcc-bugs
mailing list