On Tue, Apr 15, 2008 at 8:05 AM, Zdenek Dvorak <[EMAIL PROTECTED]> wrote:
> Hi,
>
>
> > To clarify what Richard means, your assertion that "you have updated
> > SSA information" is false.
> > If you had updated the SSA information, the error would not occur :).
> >
> > How exactly are you updating the ssa information?
> >
> > The general way to update SSA for this case would be:
> >
> > For each statement you have moved:
> > Call update_stmt (t);
> >
> > Then call update_ssa (TODO_update_ssa) (or instead use
> > rewrite_into_loop_closed_ssa if this is a loop pass).
> >
> > If you do not call update_stmt in this case, update_ssa won't actually
> > do anything.
>
> actually, it will not do anything even if he calls update_stmt, as the
> statements that he is moving are already in ssa form, so update_stmt
> will not mark anything for renaming.
>
You are partially right (and right where it matters, that it won't fix
the problem)
That said, update_stmt on ssa form statements will at least reset the
vuse/vdef back to original variables for renaming.
Or at least that is my recollection