This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Moving statements from one BB to other BB.
On Tue, Apr 15, 2008 at 10:34 AM, Daniel Berlin <dberlin@dberlin.org> wrote:
> 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?
I am calling update_ssa (TODO_update_ssa), after all the statements
are transferred.
>
> 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.
>
> Diego, the bsi iterators do not update the statements for you though
> it is not clear if this is a bug or not.
>
> The bsi iterators call update_modified_stmts, which says:
>
> /* Mark statement T as modified, and update it. */
> static inline void
> update_modified_stmts (tree t)
>
> However, this only calls update_stmt_if_modified (IE it does not mark
> the statement as modified and update it, as it claims to).
>
> Sandeep, it should also suffice to call mark_stmt_modified *before*
> moving the statements (since the above routine should then update
> them).
>
Thanks. I will use update_stmt, update_ssa now.
Best Regards,
Sandeep.
> On Mon, Apr 14, 2008 at 7:10 AM, Richard Guenther
>
> <richard.guenther@gmail.com> wrote:
>
>
> > On Mon, Apr 14, 2008 at 12:54 PM, Sandeep Maram <sandeep244@gmail.com> wrote:
> > > Hi,
> > >
> > > I have transferred all the statements of one BB( header of one loop)
> > > to another BB. After that I have updated SSA information too.
> > > But I get this error-
> > >
> > > definition in block 6 does not dominate use in block 3
> > > for SSA_NAME: i_25 in statement:
> >
> > This is the problem.
> >
> >
> >
> > > # VUSE <a_18>
> > > D.1189_10 = a[i_25];
> > > loop.c:8: internal compiler error: verify_ssa failed
> > >
> > > Can any one please tell me what is the problem?
> > >
> > > Thanks,
> > > Sandeep.
> > >
> >
>