This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa] Removal of gotos from cfg based ir
- From: Richard Henderson <rth at redhat dot com>
- To: law at redhat dot com
- Cc: 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: Fri, 14 Nov 2003 17:22:31 -0800
- Subject: Re: [tree-ssa] Removal of gotos from cfg based ir
- References: <20031114211322.GE28319@redhat.com> <200311150013.hAF0DJ2K000868@speedy.slc.redhat.com>
On Fri, Nov 14, 2003 at 05:13:19PM -0700, firstname.lastname@example.org wrote:
> And, so with this in mind, what state should we be passing to
> to the tree_rest_of_compilation routine.
I'm not sure. Mostly because I don't think this should actually
be in the official front end interface at all.
The real front-end -> optimizer interface should be cgraph.h.
The front end tells cgraph about all of the symbols in the
translation unit, then cgraph decides whether and how the
symbols will be emitted. tree_rest_of_compilation would be
part of the interface from cgraph to the code generators, but
whether in its current form or not, I don't know.
This is mostly dependent on what we want to do with tree-inlining.
At the moment we don't even do trivial cleanups before inlining.
Doing something here might well (1) save time and memory, and
(2) change inlining decisions.
> 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
The EH lookaside data is built in tree_rest_of_compilation, so I
would not include that in t_r_o_c's interface.
The EH lookaside data *is* part of the rtl IL. Note that the old
rtl inliner knows how to replicate that data and splice it in to
the caller's EH data. Ugly stuff. But it is done and works should
we ever decide to do post optimization tree inlining.
> With Zdenek's change, the passed state would include the CFG.
Likewise. That's part of the (rtl) rest_of_compilation interface,
but, frankly, rest_of_compilation by rights should be swallowed by
tree_rest_of_compilation. You shouldn't be able to call the rtl
bits without calling the tree bits.