From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8496 invoked by alias); 26 Oct 2011 08:53:00 -0000 Received: (qmail 8484 invoked by uid 22791); 26 Oct 2011 08:52:58 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,TW_FW X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 26 Oct 2011 08:52:45 +0000 From: "aoliva at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug bootstrap/50826] bootstrap on 64 bit pa broken by r180194, ICE in mem_loc_descriptor Date: Wed, 26 Oct 2011 08:53:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: bootstrap X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: aoliva at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 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: 2011-10/txt/msg02621.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D50826 --- Comment #8 from Alexandre Oliva 2011-10-26 = 08:52:13 UTC --- Thanks. FTR, the reason we get this on PA64 and not on x86* (and probably = not on PA32) is that pa_internal_arg_pointer sets up a pseudo to hold r29+offse= t. The pseudo is fwpropped into the assignments to args passed in registers but that must live on the stack (=E2=80=9Cinsn=E2=80=9D in this testcase). The= last such assignment becomes r29's death point, but the pseudo was propagated into de= bug uses at later points, so DF sets up a debug temp bound to r29 before its de= ath, and replaces r29 with the debug temp in the debug uses. This doesn't happen on x86 because there's no such pseudo: the arg pointer = is used directly throughout the function, so it doesn't die early and doesn't trigger the debug temp substitution that ended up triggering the VT bug. Maybe this new info can lead to a simplification of the test in the patch; = I'm not sure about it yet.