This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa, RFC] CFG transparent RTL expansion
- From: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- To: Andrew MacLeod <amacleod at redhat dot com>
- Cc: Jan Hubicka <jh at suse dot cz>, Jan Hubicka <hubicka at ucw dot cz>,gcc mailing list <gcc at gcc dot gnu dot org>,gcc-patches <gcc-patches at gcc dot gnu dot org>,Richard Henderson <rth at redhat dot com>,Diego Novillo <dnovillo at redhat dot com>, stuart at apple dot com,dalej at apple dot com
- Date: Thu, 22 Jan 2004 20:32:22 +0100
- Subject: Re: [tree-ssa, RFC] CFG transparent RTL expansion
- References: <1074783567.17269.3786.camel@p4>
Hello,
> On Wed, 2004-01-21 at 12:58, Jan Hubicka wrote:
> > > OK, so I am going to offer no alternative, just comments :-)
> > >
> > > - A persistent CFG which crosses an IL translator concernes me a little,
> > > but not enough to stonewall it. Its been pointed out that having the CFG
> > > present during rtl expansion might discover a few things we weren't
> > > aware of.
> > >
> > > - A persistent CFG will require that anything between SSA and RTL
> > > expansion (such as mudflap) be CFG aware. Other than the work involved
> > > in making the conversion, this is also not necessarily a bad thing, and
> > > may provide some benefits. Presumably this also means we have to make
> > > all the bsi_* routines work on non-ssa trees as well. Otherwise mudflap
> > > et al will have a hard time manipulating things. At the very least, we
> > > dont want to create stmt annotations via the modify_stmt() call common
> > > in the bsi_ routines.
> >
> > I actually had no problem using the bsi iterators after the last
> > Richard's reorganization of how they are linked.
> > We no longer need statement anotations so iterators just work. Perhaps
> > I've missed something, but mudflap also seemed to just work (as well as
> > TER), but I will look into this in more detail.
>
> I beleive they should work fine, but you are inadvertanly creating a
> useless stmt annotation every time modify_stmt() is called within
> bsi_replace, or a routine like that. Presumably mudflap or anything
> between SSA and RTL will manipulate stmts using those routines which
> currently call modify_stmt()... At least I think :-)
iirc this should not be neccessary -- we consider statements without
annotations modified anyway, so modify_stmt can be just modified to
leave the statement without annotations.
Zdenek