Context-sensitive interprocedural points-to analysis in the presence of function pointers
- 1 June 1994
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 29 (6) , 242-256
- https://doi.org/10.1145/773473.178264
Abstract
This paper reports on the design, implementation, and empirical results of a new method for dealing with the aliasing problem in C. The method is based on approximating the points-to relationships between accessible stack locations, and can be used to generate alias pairs, or used directly for other analyses and transformations. Our method provides context-sensitive interprocedural information based on analysis over invocation graphs that capture all calling contexts including recursive and mutually-recursive calling contexts. Furthermore, the method allows the smooth integration for handling general function pointers in C. We illustrate the effectiveness of the method with empirical results from an implementation in the McCAT optimizing/parallelizing C compiler.This publication has 28 references indexed in Scilit:
- Pointer-induced aliasingACM SIGPLAN Notices, 1993
- Interprocedural modification side effect analysis with pointer aliasingPublished by Association for Computing Machinery (ACM) ,1993
- Efficient call graph analysisACM Letters on Programming Languages and Systems, 1992
- Analysis of pointers and structuresACM SIGPLAN Notices, 1990
- Constructing the procedure call multigraphIEEE Transactions on Software Engineering, 1990
- Interprocedural slicing using dependence graphsACM Transactions on Programming Languages and Systems, 1990
- Parallelizing programs with recursive data structuresIEEE Transactions on Parallel and Distributed Systems, 1990
- The interprocedural analysis and automatic parallelization of Scheme programsHigher-Order and Symbolic Computation, 1989
- Effect analysis in higher-order languagesInternational Journal of Parallel Programming, 1989
- A precise inter-procedural data flow algorithmPublished by Association for Computing Machinery (ACM) ,1981