This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa Too many edges in CFG
- From: law at redhat dot com
- To: Jason Merrill <jason at redhat dot com>
- Cc: Andrew MacLeod <amacleod at redhat dot com>, Diego Novillo <dnovillo at redhat dot com>, Richard Henderson <rth at redhat dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 08 May 2003 10:14:34 -0600
- Subject: Re: [tree-ssa Too many edges in CFG
- Reply-to: law at redhat dot com
In message <firstname.lastname@example.org>, Jason Merrill writes:
>Sure, but my point is that we should have an abnormal edge there to
>properly model the potential flow. Use of globals is already handled by an
>implicit USE, isn't it? I don't think we need to treat calls specially in
>most optimizers if we describe their properties correctly.
Thus my comment that if we want/need these edges, then they should be
marked as fake edges since they can never be executed and that any
code queued for insertion on a fake edge can be ignored.
>Morgan says that some algorithms, including PRE, break down if not all
>execution paths lead to the exit block. I don't know whether that's true
>of our implementation, but it seems like a reasonable invariant.
Correct. However note that SSAPRE is a very different beast than PRE
as Morgan describes it. I'm not familiar enough with SSAPRE to know if
it requires fake edges to the exit block.