This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Removal of gotos from cfg based ir
Hello,
> > > > Your's commit_edge_redirections is disband_implicit_edges.
> > > > Rest of Zdenek's patch is mostly about removing things that are no
> > > > longer needed and reorganizing things so the gotos are alliminated from
> > >
> > >
> > > I think mine is a lot less intrusive than removing all the GOTOs , using
> > > CFG edges everywhere, and then rewriting all the GOTO's and labels when
> > > done.
> >
> > in what exactly you see intrusivity of my approach? Note that there are
> > absolutely no changes in optimizers outside tree-cfg.c.
> >
>
> First answer the last question:
>
> Are simply talking about removing all the GOTO_EXPR's in the program,
> and letting the CFG edges represent those GOTO's?.
Yes.
> Is there
> anything *other* than explicit GOTOs which are involved?
No.
> And the reason
> this is better is because we dont have to deal with GOTOs that are
> required in new basic blocks caused by forwarder blocks which get
> created when GOTOs are required?
Yes (at least it is the main reason, the other are less important).
> Because this is far less intrusive than what we (or at least I :-)
> originally started arguing about. :-) And it would be in this state
> presumably starting when the cfg is created, and the GOTOs replced when
> the CFg is destroyed?
Exactly; you may want to check
http://gcc.gnu.org/ml/gcc-patches/2003-11/msg01371.html
where the complete patch I propose is, if there are other details
you are unsure of.
Zdenek