Related articles |
---|
Interprocedural SSA form? devriese@cs.tcd.ie (Edsko de Vries) (2005-06-02) |
Re: Interprocedural SSA form? jsinger@cs.man.ac.uk (Jeremy Singer) (2005-06-02) |
Re: Interprocedural SSA form? liekweg@ipd.info.uni-karlsruhe.de (Florian Liekweg) (2005-06-02) |
Re: Interprocedural SSA form? find@my.address.elsewhere (Matthias Blume) (2005-06-04) |
Re: Interprocedural SSA form? jsinger@cs.man.ac.uk (Jeremy Singer) (2005-06-04) |
From: | Matthias Blume <find@my.address.elsewhere> |
Newsgroups: | comp.compilers |
Date: | 4 Jun 2005 15:07:11 -0400 |
Organization: | private |
References: | 05-06-011 05-06-014 |
Keywords: | SSA, analysis |
Posted-Date: | 04 Jun 2005 15:07:11 EDT |
Florian Liekweg <liekweg@ipd.info.uni-karlsruhe.de> writes:
> Edsko de Vries wrote:
>> When writing a compiler based around SSA, is every procedure converted
>> to SSA form individually, or is it possible to create some sort of
>> "super control flow graph" that incorporates procedures, and convert
>> the entire thing to SSA form? ...
>
> Hi, Edsko,
>
> this depends on what You are planning to do on the interprocedural
> representation. For a whole-program analysis, we have found the
> following idea(s) useful:
>
> * Formal arguments in procedure f are nothing more than Phi-Functions
> for the actual parameters given to calls to f in other procedures.
> * Return instructions (with a value) are 'inverse' to the argument
> Phi's in the sense that the return value of a call to f can be
> now written as an access to the return value of f.
> * For a program analysis, you will probably take into account that
> analysis information gathered for a return instruction must be
> filtered: if g calls f, and accesses the return instruction of g,
> it may only pick up information computed from values prpagated into
> f from g. (if this is omitted, you propagate information along
> unrealizable paths, e.g. g and g' both call f, and g' values are
> propagated int the call to f, through f, and back ... into g'.)
>
> With the first two points done before an analysis is started, and
> the analysis itself extended by the third point, you get an inter-
> procedural analysis 'for free'.
This begins to sound a lot like CPS (continuation-passing style), and
that should come as no surprise:
http://www.cs.princeton.edu/~appel/papers/ssafun.pdf
http://portal.acm.org/citation.cfm?id=202530.202532
Matthias
Return to the
comp.compilers page.
Search the
comp.compilers archives again.