From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16406 invoked by alias); 26 Apr 2002 17:43:32 -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 16390 invoked from network); 26 Apr 2002 17:43:29 -0000 Received: from unknown (HELO cygnus.com) (205.180.83.203) by sources.redhat.com with SMTP; 26 Apr 2002 17:43:29 -0000 Received: from porcupine.cygnus.com (remus.sfbay.redhat.com [172.16.27.252]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id KAA24827 for ; Fri, 26 Apr 2002 10:43:26 -0700 (PDT) Received: from porcupine.cygnus.com (IDENT:Ct6RBKwCYI9haupwdJ7WaFrwsuQL43K9@localhost.localdomain [127.0.0.1]) by porcupine.cygnus.com (8.12.2/8.12.2) with ESMTP id g3QHCUv9012809; Fri, 26 Apr 2002 11:12:30 -0600 Received: from porcupine.cygnus.com (law@localhost) by porcupine.cygnus.com (8.12.2/8.12.2/Submit) with ESMTP id g3QHCTGv012804; Fri, 26 Apr 2002 11:12:30 -0600 To: "John David Anglin" cc: gcc@gcc.gnu.org, willy@debian.org Subject: Re: PA specifies invalid T_ADAFLAGS Reply-To: law@redhat.com From: law@redhat.com In-reply-to: Your message of Fri, 26 Apr 2002 12:35:07 EDT. <200204261635.g3QGZ7bW026408@hiauly1.hia.nrc.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 26 Apr 2002 10:43:00 -0000 Message-ID: <12803.1019841149@porcupine.cygnus.com> X-SW-Source: 2002-04/txt/msg01439.txt.bz2 In message <200204261635.g3QGZ7bW026408@hiauly1.hia.nrc.ca>, "John David Anglin " writes: > > > I suspect using "-mdisable-indexing" dates from a time when indexing > > > didn't work very well. This was reworked a year or two ago. > > No. The semantics of Ada don't play well with the funky implicit space > > register > > selection done on PAs. -mdisable-indexing is really needed for Ada. > > Yes. I am testing a patch to correct the configuration regression > introduced last fall. I had my first successful build of ada last > night under hpux with gcc 3.1. Actually, I forgot, there is a way we could get rid of -mdisable-indexing completely (without totally removing indexing :-) Basically we would only do indexing when we can prove that we have a "pure pointer"; where "pure pointer" means that we have a pointer that we know points to a location within its object. We largely have this with REGNO_POINTER_FLAG, but if I recall properly it gets set sometimes when it shouldn't. We'd also need a reasonable way to propagage REGNO_POINTER_FLAG to other pointer references (the code in regclass is painfully inadequate). Anyway, once we have "pure pointers" identified & marked, then we only allow indexing on the pure pointer. Moving REGNO_POINTER_FLAG out of its separate array and into the register RTL structure itself was one of the key first steps (so that we can safely examine it during assembly output). The next step would be to review generation of REGNO_POINTER_FLAG to ensure it's only generated for pure pointers. Then we can twiddle the backend to use it, then we can write a pass to propagage REGNO_POINTER_FLAG so that it's more aggressively set. jeff