This is the mail archive of the gcc-patches@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: Replace rename_ssa_into_ssa with update_ssa


Hello,

thanks for the timings; it's not that I would that much had doubts about
the results (the lcssa for vitual names definitively must be expensive),
just they should be included with this (a bit controversial, IMHO) patch.

> On Sat, Apr 23, 2005 at 03:52:35AM +0200, Zdenek Dvorak wrote:
> > Hello,
> > 
> > > This patch brings over most of the changes in tree-cleanup-branch.  
> > > I think that all that's left is the re-ordering of tree passes.
> > > 
> > > The main change in this patch is the replacement of rewrite_ssa_into_ssa
> > > with update_ssa (the incremental SSA updating mechanism).  As a
> > > side-effect of this change, it is no longer necessary to keep
> > > virtual operands in loop-closed SSA form.  This provides some
> > > nice compile time speedups in the loop passes.
> > 
> > hmm... I wonder whether this is really a good idea.  This means that
> > operations like loop unrolling will leave the ssa form for virtual
> > operands broken, making it impossible to use it until update_ssa is
> > called.
> >
> Well, yes.  But this is true of any other updating scheme, after
> you unroll the loop you have to update the SSA form before you
> can do anything with the code.  I think I'm missing your point.
> Could you show me a test case with broken code?

no; sorry, I misunderstood the code a bit.  Just one question -- would
not it be possible to have update_ssa call directly inside
tree_duplicate_loop_to_header_edge, instead of having the caller of the
function do it?  It seems less error-prone to me.

> > Could you please remove my name from the changelog entry?  I have
> > nothing to do with this patch
> >
> This is an odd request.  Credit where credit's due.  You
> implemented the code to replace calls to rewrite_ssa_into_ssa
> with another scheme.  I kept those hunks from your original
> patch.

Well, but there is not that much of my code left.  It's not question
of credit for me, I just don't want to risk someone asking me about
the code, or even wanting me to fix the possible bugs in a code I do
not understand entirely.

> So, I would try to encourage new passes to try and use update_ssa
> whenever possible and only hand-code the SSA updating when the
> generic updating is slower and can't be easily sped up.

Great, that's one of the things I wanted to hear for quite some time.
I would be even happier to hear this opinion before I was forced to waste
my time by working on the specialized "hand-code" SSA updating
(instead of speeding up and improving the generic SSA form updating as
I wanted to originally), but even this is a progress :-).

Zdenek


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