[patch] Lno branch merge part 3 -- ssa form updating improvements

Zdenek Dvorak rakdver@atrey.karlin.mff.cuni.cz
Tue Jun 15 17:23:00 GMT 2004


Hello,

> > And finally: we cannot do this at all for now, since it requires you to
> > have lists of immediate uses available at all times (which I was
> > forbidden to implement by Diego a few months ago).  I will be happy to
> 
> Im am integrating immediate uses into the operands management system as
> we speak. There are some issues which need to be addressed, but that
> functionality will be available soonish.  
> 
> > implement this functionality later, since in some contexts it may be
> > useful; but it needs at least a week of time to code and the changes for it
> > would be quite intrusive.
> > 
> 
> As you say, its intrusive, but not so much since its integrated with the
> operands. The most intrusive part is seperating out definitions from
> uses contextually, and handling arguments and results of PHI nodes
> through the same operand interface. I have been attempting to perfect
> this over some time now. There are only a couple of spots in the
> optimizers which are having, err, difficulties, with operands. 

hmm... how much time you think you need for this to be ready?

Anyway, there are other difficulties with the incremental updating
during code copying.  At least you need to have dominance frontiers
information up-to-date after each part of the copied cfg; this seems
to be challenging task by itself, if you want to do it efficiently.

I still believe that even if we have incremental updating (which we
should, as it may be pretty useful in some cases), for the operations
that need to do a lot of updates at once (like the loop header copying
and other code duplication transformations) the global scheme
implemented in rewrite_ssa_into_ssa is the right choice.

Well, and to say it bluntly:  we need something *now*, in order to be
able to proceed with the rest of the branch merge, and we won't have
anything else that would be sufficiently tested soon enough.  So either
we need to merge rewrite_ssa_into_ssa, or wait with merge of lno-branch
till 3.6.

Zdenek



More information about the Gcc-patches mailing list