Efficient context-sensitive pointer analysis for C programs
Authors:
Open Access
- 1 June 1995
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 30 (6) , 1-12
Abstract
This paper proposes an efficient technique for context-sensitive pointer analysis that is applicable to real C programs. For efficiency, we summarize the effects of procedures using partial transfer functions . A partial transfer function (PTF) describes the behavior of a procedure assuming that certain alias relationships hold when it is called. We can reuse a PTF in many calling contexts as long as the aliases among the inputs to the procedure are the same. Our empirical results demonstrate that this technique is successful—a single PTF per procedure is usually sufficient to obtain completely context-sensitive results. Because many C programs use features such as type casts and pointer arithmetic to circumvent the high-level type system, our algorithm is based on a low-level representation of memory locations that safely handles all the features of C. We have implemented our algorithm in the SUIF compiler system and we show that it runs efficiently for a set of C benchmarks.Keywords
This publication has 13 references indexed in Scilit:
- SUIFACM SIGPLAN Notices, 1994
- Interprocedural may-alias analysis for pointers1994
- Context-sensitive interprocedural points-to analysis in the presence of function pointers1994
- Pointer-induced aliasingACM SIGPLAN Notices, 1993
- A safe approximate algorithm for interprocedural aliasing1992
- Semantical interprocedural parallelization1991
- Analysis of pointers and structures1990
- Parallelizing programs with recursive data structuresIEEE Transactions on Parallel and Distributed Systems, 1990
- An efficient method of computing static single assignment form1989
- Detecting conflicts between structure accesses1988