From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8676 invoked by alias); 8 Jan 2006 00:45:30 -0000 Received: (qmail 8633 invoked by uid 48); 8 Jan 2006 00:45:25 -0000 Date: Sun, 08 Jan 2006 00:45:00 -0000 Message-ID: <20060108004525.8632.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug rtl-optimization/24257] [4.1/4.2 Regression] ICE: in extract_insn with -O -fgcse -fgcse-sm In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "steven at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-01/txt/msg00693.txt.bz2 List-Id: ------- 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 .buf+0 S4 A32]) (ashift:SI (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 .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 .buf+0 S4 A32]) (ashift:SI (mem/s:SI (reg/v/f:DI 63 [ s ]) [3 .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 .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 .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