This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa Too many edges in CFG
On Wed, May 07, 2003 at 02:25:20PM -0700, Richard Henderson wrote:
> On Tue, May 06, 2003 at 08:50:06PM -0600, email@example.com wrote:
> > + /* Some calls are known not to return. For such calls we need to
> > + add an edge to the exit block. No fall thru edge is needed
> > + as these calls can not return in the normal sense. */
> Why do you need an edge to the exit block?
I don't think we use that for anything right now. In the future,
the predecessor blocks of EXIT_BLOCK_PTR will be the blocks where
we want to put copy-out operations for globals and statics.
Granted, for things like abort() this will probably not be
necessary. Another alternative is to not place the edge and look
for blocks with no successor. I'm indifferent to what we decide
to use here.
To change this we would have to modify the logic in
tree-cfg.c:make_edges a little bit. Right now, the main loop
refuses to leave blocks without successors. If the helpers don't
place an edge to the current block, it eagerly looks for a
fallthru block. That shouldn't be hard to change.