From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5693 invoked by alias); 20 Mar 2004 08:02:31 -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 5681 invoked from network); 20 Mar 2004 08:02:29 -0000 Received: from unknown (HELO smtp0.libero.it) (193.70.192.33) by sources.redhat.com with SMTP; 20 Mar 2004 08:02:29 -0000 Received: from philo (151.29.220.115) by smtp0.libero.it (7.0.027-DD01) id 404F12EF0028D697; Sat, 20 Mar 2004 09:02:28 +0100 Message-ID: <006401c40e51$7b8944f0$73dc1d97@philo> From: "Paolo Bonzini" To: "Richard Henderson" , "GCC Development" References: <20040319160636.GA22342@fencepost> <20040319200037.GB26527@redhat.com> Subject: Re: Marking variable as addressable from within SSA pass Date: Sat, 20 Mar 2004 18:09:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-SW-Source: 2004-03/txt/msg01207.txt.bz2 > You do not want to do this. Addressing variables SEVERELY pessimizes > the code. Use a VIEW_CONVERT_EXPR to change the type instead. I was hoping that DOM could clean up the code, and in this particular case where I have a logical operation and it's as big as a machine register, yes, I could do without addressing. But if the operation is on a wide vector like a V2DI, or if I have something different from a logical operation, I need to do something like an RTL SUBREG. Currently I am doing like this: V4QI T_1, T_2, T_3; char *T_4, *T_5, *T_6, *T_7, *T_8, *T_9; char T_10, T_11, T_12; T_4 = (char *) &T_1; T_5 = (char *) &T_2; T_6 = (char *) &T_3; ... T_7 = T_4 + 3; T_8 = T_5 + 3; T_9 = T_6 + 3; T_10 = *T_7; T_11 = *T_8; T_12 = T_10 * T_11; *T_9 = T_12; Paolo