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.

I don't think so; as long as you do not introduce new vops (which you
should not by just moving the statements), update_stmt is a no-op on
vops too (unless something has changed since the last time I needed
this),

Zdenek

Reply via email to