|
ABSTRACT
We present an efficient algorithm for computing the procedure call graph, the program representation underlying most interprocedural optimization techniques. The algorithm computes the possible bindings of procedure variables in languages where such variables only receive their values through parameter passing, such as Fortran. We extend the algorithm to accommodate a limited form of assignments to procedure variables. The resulting algorithm can also be used in analysis of functional programs that have been converted to Continuation-Passing-Style.
We discuss the algorithm in relationship to other call graph analysis approaches. Many less efficient techniques produce essentially the same call graph. A few algorithms are more precise, but they may be prohibitively expensive depending on language features.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
BURKE, M. An interval-based approach to exhaustive and incremental interprocedural analysis. Res. Rep. RC 12702, IBM, Yorktown Heights, N.Y., 1987.
|
| |
2
|
|
| |
3
|
CALLAHAN, C. D., COOPER, K. D., HOOD, R. T., KENNEDY, K., AND TORCZON, L. ParaScope: A parallel programming environment. Int. J. Supercomput. Appl. 2, 4 (1988), 84-89.
|
 |
4
|
|
 |
5
|
|
 |
6
|
|
| |
7
|
EIGENMANN, R., AND PLUME, W. An effectiveness study of parallelizing compiler techniques. In Proceedings of the 1991 International Conference on Parallel Processing (Boca Raton, Fla., Aug. 1991). CRC Press, II-17-II-24.
|
 |
8
|
|
| |
9
|
|
| |
10
|
M. W. Hall , S. Hiranandani , K. Kennedy , C.-W. Tseng, Interprocedural compilation of Fortran D for MIMD distributed-memory machines, Proceedings of the 1992 ACM/IEEE conference on Supercomputing, p.522-534, November 16-20, 1992, Minneapolis, Minnesota, United States
|
 |
11
|
Mary W. Hall , Ken Kennedy , Kathryn S. McKinley, Interprocedural transformations for parallel code generation, Proceedings of the 1991 ACM/IEEE conference on Supercomputing, p.424-434, November 18-22, 1991, Albuquerque, New Mexico, United States
[doi> 10.1145/125826.126055]
|
| |
12
|
|
 |
13
|
|
 |
14
|
|
 |
15
|
Jon Loeliger , Robert Metzger , Mark Seligman , Sean Stroud, Pointer target tracking—an empirical study, Proceedings of the 1991 ACM/IEEE conference on Supercomputing, p.14-23, November 18-22, 1991, Albuquerque, New Mexico, United States
[doi> 10.1145/125826.125856]
|
 |
16
|
|
| |
17
|
RYDER, B. Constructing the call graph of a program. IEEE Trans. Softw. Eng. SE-5, 3 (1979), 216-225.
|
 |
18
|
|
| |
19
|
|
 |
20
|
|
| |
21
|
SPmLM~, T.C. Exposing side-effects in a PL/I optimizing compiler. In Proceedings of the IFIP Congress 1971. North Holland, Amsterdam, 376-381.
|
 |
22
|
|
 |
23
|
|
 |
24
|
|
CITED BY 21
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Vijay Sundaresan , Laurie Hendren , Chrislain Razafimahefa , Raja Vallée-Rai , Patrick Lam , Etienne Gagnon , Charles Godin, Practical virtual method call resolution for Java, ACM SIGPLAN Notices, v.35 n.10, p.264-280, Oct. 2000
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REVIEW
"Kathleen H. V. Booth : Reviewer"
According to the authors, “most compilers optimize procedures
as separate units” and do not take into account the
possibility of global optimization. The paper considers this question
and examines previous attempts to p
more...
|