From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14175 invoked by alias); 6 Dec 2001 20:53:44 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 14154 invoked from network); 6 Dec 2001 20:53:44 -0000 Received: from unknown (HELO palrel10.hp.com) (156.153.255.245) by sources.redhat.com with SMTP; 6 Dec 2001 20:53:44 -0000 Received: from adlmail.cup.hp.com (adlmail.cup.hp.com [15.0.100.30]) by palrel10.hp.com (Postfix) with ESMTP id 2B8141FC07; Thu, 6 Dec 2001 12:53:35 -0800 (PST) Received: from cup.hp.com (gclef.atl.hp.com [15.113.162.82]) by adlmail.cup.hp.com (8.9.3 (PHNE_18546)/8.9.3 SMKit7.02) with ESMTP id MAA24480; Thu, 6 Dec 2001 12:53:34 -0800 (PST) Message-ID: <3C0FDACE.B6D0759D@cup.hp.com> Date: Thu, 06 Dec 2001 12:57:00 -0000 From: Reva Cuthbertson Organization: Hewlett-Packard Co. X-Mailer: Mozilla 4.77 [en] (X11; U; HP-UX B.11.00 9000/785) X-Accept-Language: en MIME-Version: 1.0 To: Richard Henderson Cc: gcc@gcc.gnu.org Subject: Re: ICE on IA-64 when compiling SPEC 2000 176.gcc at -O1 References: <200112060107.RAA16690@moshpit.cup.hp.com> <20011205231530.A9114@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2001-12/txt/msg00305.txt.bz2 Richard Henderson wrote: > On Wed, Dec 05, 2001 at 05:07:50PM -0800, Reva Cuthbertson wrote: > > ... and it happens because the born_index > death_index test fails so > > we call abort(). > > This is normally due to register life info being incorrect. > > That is, on input to local_alloc some register was reported > to be set once and never die (certainly possible), yet the > register does in fact die. > > Can't debug this further without a test case. > > r~ Richard, The problem can be seen when compiling the function output_signed_leb128() in dwarfout.c in the gcc sources. The function itself has been commented out on the main branch so the problem does not happen if you compile dwarfout.c with -O1. However, the function output_signed_leb128() is part of 176.gcc in SPEC 2000. For convenience, I cut down output_signed_leb128() into the following test case. Compile this with -O1 using gcc 3.1 for IA-64 and the internal compiler error should occur. static void output_signed_leb128 (value) long value; { int more; do { unsigned byte = (value & 0x7f); value >>= 7; if (((value == 0) && ((byte & 0x40) == 0)) || ((value == -1) && ((byte & 0x40) == 1))) more = 0; } while (more); } Thanks! Reva