This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] COND_EXPR lowering preview
- From: Diego Novillo <dnovillo at redhat dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Wed, 27 Aug 2003 16:00:34 -0400
- Subject: Re: [tree-ssa] COND_EXPR lowering preview
- Organization: Red Hat Canada
- References: <200308271952.h7RJq4Mj009652@speedy.slc.redhat.com>
On Wed, 2003-08-27 at 15:52, law@redhat.com wrote:
> In message <1062013399.4452.7.camel@frodo.toronto.redhat.com>, Diego Novillo wr
> ites:
> >On Tue, 2003-08-26 at 14:53, Zdenek Dvorak wrote:
> >> It disables control structures removal in dce; this also has to be
> >> handled separately.
> >>
> >What does this have to do with COND_EXPR lowering?
> A lot actually. If you have lowered COND_EXPRs, then there is very little
> value in tracking control dependencies in DCE.
>
Ah, OK. Is this the thread about not using the control parent
relationship in DCE? I guess we can always do the traditional DCE and
build dominance frontiers in the reverse CFG (Cytron's original
SSA-DCE).
> >> COND_EXPR lowering is being done in gimplification; if you like/dislike
> >> it, cry -- I personally have no opinion whether it should be done there
> >> or somewhere later.
> >>
> >I still think we should separate this from the gimplifier. We should
> >probably have a single lowering pass that runs immediately before we
> >build the flow graph.
> I don't see the value in having it separate. All that does is force
> another walk over the statements, which seems awful wasteful. I'd
> prefer to see this lowering happen during gimplification.
>
We are going to be doing separate lowering pass with EH. We can
piggyback all the lowering code in there.
The reason I tend to prefer this is more stylistic than anything else.
The only example I had in mind was code analysis. The purist in me
would like to have a clean separation between GIMPLE as an IL and the
lowering of GIMPLE to benefit our scalar optimizers. Since we are
already going to do a separate lowering pass, we could do it there.
But, as I said before, I'm not that opposed to doing it in the
gimplifier. I don't have a strong technical reason now, so I'm happy
with what the majority thinks it's best.
Diego.