From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14866 invoked by alias); 25 Jan 2002 16:10:23 -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 14834 invoked from network); 25 Jan 2002 16:10:21 -0000 Received: from unknown (HELO nile.gnat.com) (205.232.38.5) by sources.redhat.com with SMTP; 25 Jan 2002 16:10:21 -0000 Received: by nile.gnat.com (Postfix, from userid 338) id 758CCF28AD; Fri, 25 Jan 2002 11:10:21 -0500 (EST) To: dan@dberlin.org, dewar@gnat.com Subject: Re: g++ and aliasing bools Cc: gcc@gcc.gnu.org, kenner@vlsi1.ultra.nyu.edu Message-Id: <20020125161021.758CCF28AD@nile.gnat.com> Date: Fri, 25 Jan 2002 08:32:00 -0000 From: dewar@gnat.com (Robert Dewar) X-SW-Source: 2002-01/txt/msg01635.txt.bz2 <<> The problem before us is to narrow down the may-alias relationship as far > as possible statically. There is no issue of undecidability here. Of course there is, which is why you conservatively assume that everything aliases everything else until you prove otherwise. I've been told i need to come up with a formal proof that given certain relationships between C++ types, that may-alias is always determinable statically correctly, or that we always correctly determine that we can't determine it (IE never claim wrong that things may not alias). I've said before, and i'll say again, that i'm not going to do that. >> Nope, this is plain confused. It is undecidable in general whether two objects will be aliased at run time (that's so trivial to prove that it is a silly and useless observation). But it is not a problem, it merely says that the alias sets we create are simply conservative estimates. And we need to prove that they are indeed conservative estimates. We need to be able to prove that elements of separate sets are indeed never aliased. The fact that we can't prove that elements of the *same* set *are* aliased is obvioulsy and trivially true, but quite irrelevant. <> You are still hung up on the idea that the problem we are trying to solve is to determine whether two items are aliased. That's NOT the problem here. THe problem is to determine sets of items that are provably not aliased. These are quite different problems, and you are getting confused between them.