This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa] Removal of gotos from cfg based ir
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: law at redhat dot com
- Cc: Richard Henderson <rth at redhat dot com>,Andrew MacLeod <amacleod at redhat dot com>, Jan Hubicka <jh at suse dot cz>,Jason Merrill <jason at redhat dot com>,Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>,Diego Novillo <dnovillo at redhat dot com>,gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 15 Nov 2003 01:45:53 +0100
- Subject: Re: [tree-ssa] Removal of gotos from cfg based ir
- References: <20031114211322.GE28319@redhat.com> <200311150013.hAF0DJ2K000868@speedy.slc.redhat.com>
> In message <20031114211322.GE28319@redhat.com>, Richard Henderson writes:
> >> and it seems like a restriction to force entry into RTL to have a CFG
> >> already created. I dont think the front end and the back end ought to
> >> be that tightly coupled...
> >Ah hah, that's a point of disconnect. The front end should only
> >call tree_rest_of_compilation, and then *everything* happens there
> >behind the scenes. This is, shockingly, a vast improvement over
> >the situation on mainline.
> And, so with this in mind, what state should we be passing to
> to the tree_rest_of_compilation routine.
> Today, we have the IL, EH lookaside data and probably other data I
> don't want to think about stored in global structures like the symbol
> With Zdenek's change, the passed state would include the CFG.
CFG is conceptually simple datastructure compared to, for instance,
debug information you need to pass around as well. I don't see anything
evil about dumping it to file/reading it back. Other compilers do that.
We also may go without it if we want - we can have the gotos in place at
dumping time, like we do have right now. It is unlikely that
we want to read the profile at parsing/early optimization time, we want
to do it at link time when we do the optimization so user don't need to
re-parse all files when profiling/optimizing.