len@ai.toronto.edu (Leonard Vanek) (02/08/89)
Can someone provide me with the most recent references on the subject of interprocedural dataflow analysis? I am specifically interested in obtaining an EXACT (rather than conservative) solution for the values (or expressions) killed by a procedure call -- even in the presence of recursive calls within the procedure. -- Leonard Vanek UUCP: ... uunet!attcan!lsuc!array!len Array Systems Computing Inc. or ... utzoo!dciem!array!len 5000 Dufferin St. Suite 200 or lsuc!array!len@ai.toronto.edu Downsview, Ont. M3H 5T5 Phone: (416) 736-0900 Canada FAX: (416) 736-4715 [Good luck, sounds like the halting problem to me. -John] -- Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.EDU Plausible paths are { decvax | harvard | yale | bbn}!ima Please send responses to the originator of the message -- I cannot forward mail accidentally sent back to compilers. Meta-mail to ima!compilers-request
worley@EDDIE.MIT.EDU (Dale Worley) (02/13/89)
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)]
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.EDU
Plausible paths are { decvax | harvard | yale | bbn}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers. Meta-mail to ima!compilers-request
pinter-ron@CS.YALE.EDU (Ron Pinter) (02/14/89)
Two (but may be not *the most*) recent references are David Callahan: "The Program Summary Graph and Flow-sensitive Interprocedural Data Flow Analysis", and Keith D. Cooper and Ken Kennedy: "Interprocedural Side-effect Analysis in Linear Time". They both appear in the Proc of the SIGPLAN'88 Conf on Programming Language Design and Implementation (available as SIGPLAN Notices, June 1988), on pp. 47-56 and 57-66, respectively. [From pinter-ron@CS.YALE.EDU (Ron Pinter)] -- Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.EDU Plausible paths are { decvax | harvard | yale | bbn}!ima Please send responses to the originator of the message -- I cannot forward mail accidentally sent back to compilers. Meta-mail to ima!compilers-request