This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Tree-SSA self checking infrastructure


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]