From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19412 invoked by alias); 19 Mar 2010 21:14:36 -0000 Received: (qmail 19204 invoked by uid 48); 19 Mar 2010 21:14:18 -0000 Date: Fri, 19 Mar 2010 21:14:00 -0000 Message-ID: <20100319211418.19203.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/43437] ICE in CSE, during libgcc build In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jakub at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-03/txt/msg01902.txt.bz2 ------- Comment #7 from jakub at gcc dot gnu dot org 2010-03-19 21:14 ------- I really think it is score backend that should be fixed here. Say the store multiple should be represented with (insn/f 93 8 94 2 pr43437.c:4 (parallel [ (set/f (mem:SI (plus:SI (reg/f:SI 0 r0) (const_int -4 [0xfffffffffffffffc])) [0 S4 A32]) (reg:SI 12 r12)) (set/f (mem:SI (plus:SI (reg/f:SI 0 r0) (const_int -8 [0xfffffffffffffff8])) [0 S4 A32]) (reg:SI 13 r13)) (set/f (mem:SI (plus:SI (reg/f:SI 0 r0) (const_int -12 [0xfffffffffffffff4])) [0 S4 A32]) (reg:SI 14 r14)) (set/f (mem:SI (plus:SI (reg/f:SI 0 r0) (const_int -16 [0xfffffffffffffff0])) [0 S4 A32]) (reg:SI 15 r15)) (set/f (reg/f:SI 0 r0) ((plus:SI (reg/f:SI 0 r0) (const_int -16 [0xfffffffffffffff0]))) ]) 159 {*score.md:3032} (expr_list:REG_DEAD (reg:SI 15 r15) (expr_list:REG_DEAD (reg:SI 14 r14) (expr_list:REG_DEAD (reg:SI 13 r13) (expr_list:REG_DEAD (reg:SI 12 r12) (nil)))))) assuming the regs are meant to be pushed in that order (or the other order of the adjustments). No single insn should have more than one side-effect on one register. -- jakub at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |liqin at gcc dot gnu dot org AssignedTo|jakub at gcc dot gnu dot org|unassigned at gcc dot gnu | |dot org Status|ASSIGNED |NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43437