From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3422 invoked by alias); 17 Jan 2003 18:25:34 -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 3410 invoked from network); 17 Jan 2003 18:25:31 -0000 Received: from unknown (HELO atrey.karlin.mff.cuni.cz) (195.113.31.123) by sources.redhat.com with SMTP; 17 Jan 2003 18:25:31 -0000 Received: by atrey.karlin.mff.cuni.cz (Postfix, from userid 4018) id E5BD24F9AC; Fri, 17 Jan 2003 19:25:30 +0100 (CET) Date: Fri, 17 Jan 2003 18:25:00 -0000 From: Jan Hubicka To: law@redhat.com Cc: John David Anglin , roger@www.eyesopen.com, gcc-patches@gcc.gnu.org Subject: Re: [PATCH] Fix RTL sharing problem in CSE Message-ID: <20030117182530.GB20846@atrey.karlin.mff.cuni.cz> References: <200301171715.h0HHFOL0006221@hiauly1.hia.nrc.ca> <200301171727.h0HHQqIo014525@localhost.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200301171727.h0HHQqIo014525@localhost.redhat.com> User-Agent: Mutt/1.3.28i X-SW-Source: 2003-01/txt/msg01241.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. When replacement is made by validate_replace_reg, this is done automatically. I think bypass pass should use it consistently... Honza > > jeff