--- Comment #2 from spark at gcc dot gnu dot org 2007-06-14 19:49 ---
The problem is reproducible also on x86-64.
The following patch seems to fix the ICE.
I'll start a bootstrap/testing.
*** /tmp/gcse.c 2007-06-14 19:46:27.0 +
--- gcc/gcse.c 2007-06-14 19:44:19.0 +
*** replace_store_insn (rtx reg, rtx del, ba
*** 6341,6357
mem = smexpr-pattern;
insn = gen_move_insn (reg, SET_SRC (single_set (del)));
- insn = emit_insn_after (insn, del);
-
- if (dump_file)
- {
- fprintf (dump_file,
- STORE_MOTION delete insn in BB %d:\n , bb-index);
- print_inline_rtx (dump_file, del, 6);
- fprintf (dump_file, \nSTORE MOTION replaced with insn:\n );
- print_inline_rtx (dump_file, insn, 6);
- fprintf (dump_file, \n);
- }
for (ptr = ANTIC_STORE_LIST (smexpr); ptr; ptr = XEXP (ptr, 1))
if (XEXP (ptr, 0) == del)
--- 6341,6346
*** replace_store_insn (rtx reg, rtx del, ba
*** 6379,6384
--- 6368,6385
XEXP (note, 0) = insn;
}
+ insn = emit_insn_after (insn, del);
+
+ if (dump_file)
+ {
+ fprintf (dump_file,
+ STORE_MOTION delete insn in BB %d:\n , bb-index);
+ print_inline_rtx (dump_file, del, 6);
+ fprintf (dump_file, \nSTORE MOTION replaced with insn:\n );
+ print_inline_rtx (dump_file, insn, 6);
+ fprintf (dump_file, \n);
+ }
+
delete_insn (del);
/* Now we must handle REG_EQUAL notes whose contents is equal to the mem;
--
spark at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |spark at gcc dot gnu dot org
|dot org |
Status|UNCONFIRMED |ASSIGNED
Ever Confirmed|0 |1
Last reconfirmed|-00-00 00:00:00 |2007-06-14 19:49:10
date||
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32321