This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Tree-SSA self checking infrastructure
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Andrew MacLeod <amacleod at redhat dot com>
- Cc: Jeff Law <law at redhat dot com>, Jan Hubicka <jh at suse dot cz>,gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Wed, 19 Nov 2003 19:38:32 +0100
- Subject: Re: Tree-SSA self checking infrastructure
- References: <200311191804.hAJI4rrn009935@speedy.slc.redhat.com> <1069266325.30707.833.camel@p4>
> On Wed, 2003-11-19 at 13:04, law@redhat.com wrote:
>
> >
> > >3) SSA form testing
> > > We should have verify_ssa that ensures that stream is in valid SSA
> > > form. I am not quite sure how to best implement this, but I guess I
> > > can simply verify that all the pointers points corectly and that each
> > > use is dominated by the def it points to. Correct?
> > Right. Each use needs to be dominated by its def and there should only be
> > a single def for each SSA_NAME.
> >
>
> Isnt that already verified in SSA->normal?
It would be easier to have this in simple function so one can call it in
the middle of queue.
>
> >
> > > This also brings me into question how the rewrite_into_ssa updates
> > > the SSA form. What happens when the variable has been already
> > > optimized so live ranges of it's SSA_NAMES overlap and I ask for
> > > variable SSA form to be recomputed?
> > You lose. You lose badly. Don't do that :-)
> >
> > Having a verification step that you don't rename an already renamed
> > variable after a certain point (after the dominator based jump threading)
> > would be good.
> >
> > Long term we _may_ want the ability to run the SSA to normal pass on a
> > specific set of variables. That would allow us to do dominator based
> > jump threading anytime we want, take the injured variables out of SSA
> > form, then put them back into SSA form.
>
> That would actually be pretty trivial.. it already runs only on
> partitions created by create_ssa_var_map().. all you need to do is
> create a different partition set with just the variables you care
> about... dead simple :-) Of course you might be interested in any new
> names that overlaping live ranges create...
Would be possible for you to look into it?
I think the current sollution has good potential to bring hidden
problems.
Honza
>
> Andrew