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: [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


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