This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa Too many edges in CFG
- From: law at redhat dot com
- To: Diego Novillo <dnovillo at redhat dot com>
- Cc: Richard Henderson <rth at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Thu, 08 May 2003 09:18:20 -0600
- Subject: Re: [tree-ssa Too many edges in CFG
- Reply-to: law at redhat dot com
In message <20030508151341.GA14715@tornado.toronto.redhat.com>, Diego Novillo w
rites:
>On Wed, May 07, 2003 at 02:25:20PM -0700, Richard Henderson wrote:
>> On Tue, May 06, 2003 at 08:50:06PM -0600, law@redhat.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.
But for a non-returning function the edge to the exit block can never
execute.
I know we've introduced fake edges in the CFG in the past to deal with
corner cases in some of the dataflow algorithms. But the more I think
about it, the more I think we don't need edges from nonreturning
functions to the exit block. At the least they should be fake edges if
we must keep those edges to make other code happy.
[ And any insertion queued for a fake edge can be ignored since the
edge can never be traversed. ]
Jeff