This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/24257] [4.1/4.2 Regression] ICE: in extract_insn with -O -fgcse -fgcse-sm
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 8 Jan 2006 00:45:25 -0000
- Subject: [Bug rtl-optimization/24257] [4.1/4.2 Regression] ICE: in extract_insn with -O -fgcse -fgcse-sm
- References: <bug-24257-8707@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #12 from steven at gcc dot gnu dot org 2006-01-08 00:45 -------
I looked at what is going on here with "GNU C version 4.1.0 20060107
(prerelease) (x86_64-unknown-linux-gnu)"
We produce the invalid insn in replace_store_insn, where we have:
(gdb) p debug_rtx(del)
(insn 19 17 21 0 (parallel [
(set (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 <variable>.buf+0 S4 A32])
(ashift:SI (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 <variable>.buf+0
S4 A32])
(subreg:QI (reg/v:SI 64 [ n ]) 0)))
(clobber (reg:CC 17 flags))
]) 413 {*ashlsi3_1} (nil)
(nil))
gen_move_insn is used to produce a move for this:
replace_store_insn (reg=0x2aaaaafcc000, del=0x2aaaaafc73c0, bb=0x2aaaaafb9780,
smexpr=0xcdae70) at gcse.c:6296
6296 mem = smexpr->pattern;
(gdb) p debug_rtx(del)
(insn 19 17 21 0 (parallel [
(set (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 <variable>.buf+0 S4 A32])
(ashift:SI (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 <variable>.buf+0
S4 A32])
(subreg:QI (reg/v:SI 64 [ n ]) 0)))
(clobber (reg:CC 17 flags))
]) 413 {*ashlsi3_1} (nil)
(nil))
$8 = void
(gdb) next
6297 insn = gen_move_insn (reg, SET_SRC (single_set (del)));
(gdb) p debug_rtx(mem)
(mem/s:SI (reg/v/f:DI 63 [ s ]) [3 <variable>.buf+0 S4 A32])
$9 = void
(gdb) next
6298 insn = emit_insn_after (insn, del);
(gdb) p debug_rtx(insn)
(insn 57 0 0 (set (reg:SI 65)
(ashift:SI (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 <variable>.buf+0 S4 A32])
(subreg:QI (reg/v:SI 64 [ n ]) 0))) -1 (nil)
(nil))
$10 = void
(gdb) p recog_memoized (insn)
$11 = -1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24257