From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9000 invoked by alias); 17 Jan 2003 17:24:05 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 8991 invoked from network); 17 Jan 2003 17:24:01 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 17 Jan 2003 17:24:01 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h0HGtQB14640; Fri, 17 Jan 2003 11:55:26 -0500 Received: from localhost.redhat.com (vpn50-6.rdu.redhat.com [172.16.50.6]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h0HHNpa07671; Fri, 17 Jan 2003 12:23:52 -0500 Received: from redhat.com (law@localhost) by localhost.redhat.com (8.12.5/8.12.5/Submit) with ESMTP id h0HHQqIo014525; Fri, 17 Jan 2003 10:27:00 -0700 Message-Id: <200301171727.h0HHQqIo014525@localhost.redhat.com> X-Authentication-Warning: localhost.redhat.com: law owned process doing -bs To: "John David Anglin" cc: roger@www.eyesopen.com, gcc-patches@gcc.gnu.org Reply-To: law@redhat.com Subject: Re: [PATCH] Fix RTL sharing problem in CSE In-Reply-To: Your message of "Fri, 17 Jan 2003 12:15:24 EST." <200301171715.h0HHFOL0006221@hiauly1.hia.nrc.ca> From: law@redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 17 Jan 2003 17:24:00 -0000 X-SW-Source: 2003-01/txt/msg01232.txt.bz2 In message <200301171715.h0HHFOL0006221@hiauly1.hia.nrc.ca>, "John David Anglin " writes: >> > 2003-01-16 Roger Sayle >> > >> > * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL >> > insn's notes following a substitution inside a libcall. >> >> This doesn't fix the hppa64 problem. I will try to investigate further. > >This is the insn that causes the ICE: > >regclass.i.12.loop: >(insn 599 598 600 0000000000000000 (set (reg:DI 263) > (mult:DI (zero_extend:DI (subreg:SI (reg:DI 262) 4)) > (zero_extend:DI (subreg:SI (reg/v:DI 157) 4)))) -1 (nil) > (nil)) > >regclass.i.13.bypass: >(insn 599 598 600 21 0000000000000000 (set (reg:DI 263) > (mult:DI (zero_extend:DI (subreg:SI (const_int -44 [0xffffffffffffffd >4]) 4)) > (zero_extend:DI (subreg:SI (reg/v:DI 157) 4)))) -1 (nil) > (nil)) > >regclass.i.19.life: >(insn 599 598 600 18 0000000000000000 (set (reg:DI 263) > (mult:DI (zero_extend:DI (subreg:SI (const_int -44 [0xffffffffffffffd >4]) 4)) > (zero_extend:DI (subreg:SI (reg/v:DI 157) 4)))) -1 (nil) > (expr_list:REG_DEAD (reg/v:DI 157) > (nil))) > >The ICE occurs because combine tries to simplify it and it can't because >of the constant substitution in the regclass.i.13.bypass pass. It would >seem to me that the subreg should be simplified when the substitution for >DI 262 is made. After that, the mode information is lost. Agreed. jeff