From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23169 invoked by alias); 18 Oct 2004 17:18:12 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 23122 invoked from network); 18 Oct 2004 17:18:10 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 18 Oct 2004 17:18:10 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.10) with ESMTP id i9IHHsJb013083; Mon, 18 Oct 2004 13:17:54 -0400 Received: from lacrosse.corp.redhat.com (lacrosse.corp.redhat.com [172.16.52.154]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i9IHHrr32595; Mon, 18 Oct 2004 13:17:53 -0400 Received: from miranda.boston.redhat.com (sebastian-int.corp.redhat.com [172.16.52.221]) by lacrosse.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i9IHHra06306; Mon, 18 Oct 2004 13:17:53 -0400 Received: by miranda.boston.redhat.com (Postfix, from userid 2638) id 29DE724797; Mon, 18 Oct 2004 13:17:37 -0400 (EDT) To: Florian Weimer Cc: Zack Weinberg , kenner@vlsi1.ultra.nyu.edu (Richard Kenner), gcc-patches@gcc.gnu.org Subject: Re: [patch] for PR 18040 From: Jason Merrill In-Reply-To: <87vfd85hq8.fsf@deneb.enyo.de> (Florian Weimer's message of "Mon, 18 Oct 2004 14:33:03 +0200") References: <10410172229.AA01784@vlsi1.ultra.nyu.edu> <87mzyksyve.fsf@codesourcery.com> <87vfd85hq8.fsf@deneb.enyo.de> Date: Mon, 18 Oct 2004 17:24:00 -0000 Message-ID: User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-10/txt/msg01500.txt.bz2 On Mon, 18 Oct 2004 14:33:03 +0200, Florian Weimer wrote: > Unfortunately, var doesn't have to be addressable. If var isn't addressable, there's no way to break up references into multiple statements, because there's no way to get a handle on an intermediate reference. So it seems that we need to support VIEW_CONVERT_EXPR (but not NOP_EXPR) inside references. If var is addressable, uses of VIEW_CONVERT_EXPR can be broken up into pointer casts. My first draft of the gimplifier broke up references into multiple statements, but I disabled that after I found that our RTL-level alias analysis did better with a.b.c than with t1 = &a.b; t1->c. Hopefully our alias analysis has improved since then; as Daniel says, the optimizers work better with smaller chunks. Jason