Re: Interprocedural SSA form?

Matthias Blume <find@my.address.elsewhere>
4 Jun 2005 15:07:11 -0400

          From comp.compilers

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)
| List of all articles for this month |
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



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.