This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Insert on edge comment
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: Chris Lattner <sabre at nondot dot org>
- Cc: Pop Sébastian <pop at gauvain dot u-strasbg dot fr>, Andrew MacLeod <amacleod at redhat dot com>, David Edelsohn <dje at watson dot ibm dot com>, Jeff Law <law at redhat dot com>, vmakarov at redhat dot com, matz at suse dot de, gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Mon, 2 Jun 2003 17:44:09 -0400 (EDT)
- Subject: Re: [tree-ssa] Insert on edge comment
- References: <Pine.LNX.4.44.0306021510240.28866-100000@nondot.org>
On Mon, 2 Jun 2003, Chris Lattner wrote:
> On Mon, 2 Jun 2003, [iso-8859-1] Pop Sébastian wrote:
>
> > This is the facet of "instruction stream controlled by the CFG", rather
> > than the classic view of "trees over which we keep up to date the CFG".
> >
> > If I'm not wrong this is still one of the major advantages of the
> > representation that LLVM has over the current status of tree-ssa. Chris?
>
> Yup, this is how we do it in LLVM. It was worked out quite well for us,
> and makes things like successors/predecessors of a basic block extremely
> easy to find... making just about every CFG based analysis and
> optimization simpler. I highly recommend things like loop expressions, if
> expressions and switch statements be lowered down into the equivilent
> "conditional branch", "unconditional branch", and "multi-way branch"
> instructions...
This would solve the whole fun with "insert after while statement at end
of block" stuff i deal with.
It's only because of the special semantics of the "while" statement that
this occurs in the first place.
If it was just a simple jump, we'd insert before. But it's a whole magic
expression with a body and whatnot.