This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Tree-SSA self checking infrastructure
- From: Andrew MacLeod <amacleod at redhat dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: Jan Hubicka <jh at suse dot cz>, gcc mailing list <gcc at gcc dot gnu dot org>
- Date: 19 Nov 2003 13:25:19 -0500
- Subject: Re: Tree-SSA self checking infrastructure
- References: <200311191804.hAJI4rrn009935@speedy.slc.redhat.com>
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?
>
> > 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...
Andrew