From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4521 invoked by alias); 17 Jan 2003 17:15:33 -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 4506 invoked from network); 17 Jan 2003 17:15:27 -0000 Received: from unknown (HELO hiauly1.hia.nrc.ca) (132.246.100.193) by sources.redhat.com with SMTP; 17 Jan 2003 17:15:27 -0000 Received: from hiauly1.hia.nrc.ca (localhost [127.0.0.1]) by hiauly1.hia.nrc.ca (8.12.0.Beta16/8.12.0.Beta16) with ESMTP id h0HHFPot006222; Fri, 17 Jan 2003 12:15:25 -0500 (EST) Received: (from dave@localhost) by hiauly1.hia.nrc.ca (8.12.0.Beta16/8.12.0.Beta16) id h0HHFOL0006221; Fri, 17 Jan 2003 12:15:24 -0500 (EST) Message-Id: <200301171715.h0HHFOL0006221@hiauly1.hia.nrc.ca> Subject: Re: [PATCH] Fix RTL sharing problem in CSE To: dave@hiauly1.hia.nrc.ca (John David Anglin) Date: Fri, 17 Jan 2003 17:15:00 -0000 From: "John David Anglin" Cc: roger@www.eyesopen.com, gcc-patches@gcc.gnu.org In-Reply-To: from "John David Anglin" at Jan 17, 2003 11:03:55 am MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SW-Source: 2003-01/txt/msg01228.txt.bz2 > > 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 [0xffffffffffffffd4]) 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 [0xffffffffffffffd4]) 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. Dave -- J. David Anglin dave.anglin@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6605)