From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10774 invoked by alias); 21 Jan 2004 15:29:53 -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 10749 invoked from network); 21 Jan 2004 15:29:52 -0000 Received: from unknown (HELO localhost.localdomain) (212.143.109.38) by sources.redhat.com with SMTP; 21 Jan 2004 15:29:52 -0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id i0LFTnJM027110; Wed, 21 Jan 2004 17:29:50 +0200 From: xyzzy@hotpop.com To: Jim Wilson , GCC list Subject: Re: RTL/SYMREF/VOLATILE question Date: Wed, 21 Jan 2004 15:33:00 -0000 User-Agent: KMail/1.5.4 References: <200401201428.54425.xyzzy@hotpop.com> <400DC917.9070405@specifixinc.com> In-Reply-To: <400DC917.9070405@specifixinc.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Description: clearsigned data Content-Disposition: inline Message-Id: <200401211729.49662.xyzzy@hotpop.com> X-SW-Source: 2004-01/txt/msg01650.txt.bz2 -----BEGIN PGP SIGNED MESSAGE----- Hash: RIPEMD160 On Wednesday 21 January 2004 2:34 am, Jim Wilson wrote: > xyzzy@hotpop.com wrote: > > Is there a simple way to do what I want (that is, get the least amount = of > > indirection possible for a SYMREF and be optimization safe?) > > You haven't provided enough information. None of your code samples will > actually produce code for instance. Just generating a symbol_ref does > not do anything interesting. You have to emit insns that use it. How > it gets optimized depends on what insns you emit. Since you did not > give us this info, there isn't much we can do. Sorry... In essence I am passing this rtx up the chain to the expand_va_arg code, so= I=20 don't KNOW what insns are emitted unless I do a lot of painful digging. Again, the code sequence is: rtx bar; and either bar =3D gen_rtx_SYMBOL_REF(Pmode,"*foo"); or bar =3D gen_rtx_MEM(Pmode,gen_rtx_SYMBOL_REF(Pmode,"*foo")); MEM_VOLATILE_P(bar) =3D 1; ... whereupon I return force_operand(copy_to_reg(bar),NULL_RTX) as the resu= lt=20 of EXPAND_BUILTIN_VA_ARG. -----BEGIN PGP SIGNATURE----- iD8DBQFADprlrT0x/nxLkjwRA4G8AJ4026dmw84/b4189tv/jrnypkHUkwCeKQv5 MlEcCADWFoYP5oX2kpJM7Zc=3D =3DGTQd -----END PGP SIGNATURE-----