Interprocedural dataflow analysis question

think!compass!worley@EDDIE.MIT.EDU (Dale Worley)
Mon, 13 Feb 89 10:11:20 EST

          From comp.compilers

Related articles
Interprocedural dataflow analysis question lsuc!array!len@ai.toronto.edu (1989-02-07)
Interprocedural dataflow analysis question think!compass!worley@EDDIE.MIT.EDU (1989-02-13)
Re: Interprocedural dataflow analysis question pinter-ron@CS.YALE.EDU (1989-02-13)
| List of all articles for this month |
Date: Mon, 13 Feb 89 10:11:20 EST
From: think!compass!worley@EDDIE.MIT.EDU (Dale Worley)

      From: encore!lsuc!array!len@ai.toronto.edu (Leonard Vanek)


      I am specifically interested in
      obtaining an EXACT (rather than conservative) solution for the values
      (or expressions) killed by a procedure call.


      [Good luck, sounds like the halting problem to me. -John]


Yeah, it's the halting problem. Consider (in C):


int x(int i)
{
if (f(i))
global_variable = 0;
}


All you have to do is determine if f(i) can ever return true.


A really interesting aspect of interprocedural analysis arises if
functions are first-class values (for instance, in Scheme), so to do
interprocedural analysis you have to first determine which functions
(lambdas) a given call might activate. Of course, inside a lambda the
potential values of its bound variables depends on which calls might
activate it, and those bound variables might be used as the functions
of calls... See "Control Flow Analysis in Scheme" by Olin Shivers
(Proceedings SIGPLAN Conference on Prog. Lang. Design and Impl., June
1988).


Dale
[From think!compass!worley@EDDIE.MIT.EDU (Dale Worley)]
--


Post a followup to this message

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