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) |
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)]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.