Related articles |
---|
SSA without phi Nicolas.Capens@gmail.com (2007-04-20) |
Re: SSA without phi tommy.thorn@gmail.com (Tommy Thorn) (2007-04-23) |
Re: SSA without phi jle@forest.owlnet.rice.edu (2007-04-23) |
SSA without phi inderaj@gmail.com (Inderaj Bains) (2007-04-23) |
Re: SSA without phi cfc@shell01.TheWorld.com (Chris F Clark) (2007-04-23) |
Re: SSA without phi find@my.address.elsewhere (Matthias Blume) (2007-04-26) |
Re: SSA without phi Nicolas.Capens@gmail.com (2007-04-29) |
Re: SSA without phi tommy.thorn@gmail.com (Tommy Thorn) (2007-05-04) |
Re: SSA without phi jle@forest.owlnet.rice.edu (2007-05-04) |
Re: SSA without phi inderaj@gmail.com (Inderaj Bains) (2007-05-07) |
Re: SSA without phi tommy.thorn@gmail.com (Tommy Thorn) (2007-05-08) |
Re: SSA without phi Nicolas.Capens@gmail.com (2007-05-22) |
From: | Tommy Thorn <tommy.thorn@gmail.com> |
Newsgroups: | comp.compilers |
Date: | 4 May 2007 13:18:00 -0400 |
Organization: | Compilers Central |
References: | 07-04-07507-04-152 |
Keywords: | analysis, SSA |
Posted-Date: | 04 May 2007 13:18:00 EDT |
On Apr 29, 4:00 pm, Nicolas.Cap...@gmail.com wrote:
> I just find it a bit unnatural to work with and I wondered whether
> there are any simpler representations (with equivalent
> advantages). Apparently that doesn't exist though...
Again, that's debatable. IMO, graph based representation tends to be
much easier to work with and a lot of stuff comes nearly for free. I'd
strongly recommend reading Paul Havlak's Thesis "Interprocedural
Symbolic Analysis" and also Marc-Michael Brandis' "Thesis on 'Small
and Fast Optimizing Compilers'". There's always more to say on that
subject, but it's a good start:
- http://www.hgsc.bcm.tmc.edu/~havlak/thesis/
- http://compilers.iecc.com/comparch/article/95-02-164
- http://compilers.iecc.com/comparch/article/95-03-077
> Anyway, maybe I'm just not using the simplest approach and I need to
> get more familiar with SSA. I rename every variable by giving them a
> completely new name (actually just a number), and keeping their old
> name in a table. But a lot of tutorials on SSA give the variables an
> index, and after optimization just drop the index and remove phi-
> functions. Does that make the implementation more elegant?
AFAICT, that is likely to be incorrect in the face of any non-trivial
optimizations. Leaving SSA requires a real register allocation either
way.
With a graph based representation you don't get too attached to names;
they are just pointers to nodes. If a full graph IR is too scary, you
can always just use them inter-basic block. I guarantee that it will
simplify your code.
Tommy
Return to the
comp.compilers page.
Search the
comp.compilers archives again.