From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16251 invoked by alias); 31 Oct 2008 09:16:14 -0000 Received: (qmail 16178 invoked by uid 22791); 31 Oct 2008 09:16:14 -0000 X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 31 Oct 2008 09:15:37 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id m9V9BJPF005712; Fri, 31 Oct 2008 05:11:19 -0400 Received: from tyan-ft48-01.lab.bos.redhat.com (tyan-ft48-01.lab.bos.redhat.com [10.16.42.4]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9V9BHZp004238; Fri, 31 Oct 2008 05:11:17 -0400 Received: (from jakub@localhost) by tyan-ft48-01.lab.bos.redhat.com (8.14.2/8.14.2/Submit) id m9V9BGIE026110; Fri, 31 Oct 2008 10:11:16 +0100 Date: Fri, 31 Oct 2008 10:53:00 -0000 From: Jakub Jelinek To: Jeff Law Cc: Peter Bergner , sje@cup.hp.com, luisgpm@linux.vnet.ibm.com, Andrew Pinski , Richard Henderson , gcc-patches@gcc.gnu.org, paolo.carlini@oracle.com Subject: Re: Patch to fix gcc.c-torture/compile/20010102-1.c on IA64 HP-UX Message-ID: <20081031091116.GV14706@tyan-ft48-01.lab.bos.redhat.com> Reply-To: Jakub Jelinek References: <1222202669.19545.1.camel@hpsje.cup.hp.com> <1223062006.612.13.camel@gargoyle> <48E6BB7D.8000809@redhat.com> <1224182072.8846.94.camel@gargoyle> <48F78BD3.5080907@redhat.com> <1225370489.23514.9.camel@gargoyle> <1225389168.26118.11.camel@hpsje.cup.hp.com> <1225390882.6757.35.camel@otta> <4909FF11.7090009@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4909FF11.7090009@redhat.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2008-10/txt/msg01339.txt.bz2 On Thu, Oct 30, 2008 at 12:38:09PM -0600, Jeff Law wrote: > Peter Bergner wrote: >> On Thu, 2008-10-30 at 10:52 -0700, Steve Ellcey wrote: >> --- config/ia64/predicates.md (revision 140417) >> +++ config/ia64/predicates.md (working copy) >> @@ -585,6 +585,6 @@ (define_predicate "ar_pfs_reg_operand" >> (define_predicate "basereg_operand" >> (match_operand 0 "register_operand") >> { >> - return REG_P (op) && REG_POINTER (op); >> + return REG_P (op) && REG_POINTER (regno_reg_rtx[ORIGINAL_REGNO (op)]); >> }) >> >> If you recall, that did solve the ICE you were hitting. The rerename.c >> change was just handling a case that looked like should be handled, but >> wasn't necessary for fixing your IC >> > We shouldn't be hacking up backends to deal with this problem, it's > entirely the wrong approach. Why? REG_POINTER can't (reliably) work on hard registers, because through the life of one function one hard register might contain in some places a pointer and in others non-pointer. While pseudos should be always either pointer or non-pointer. IMHO (almost) all uses of REG_POINTER should be changed to work on ORIGINAL_REGNO. Jakub