Efficient context-sensitive pointer analysis for C programs
- 1 June 1995
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 30 (6) , 1-12
- https://doi.org/10.1145/207110.207111
Abstract
This paper proposes an efficient technique for context- sensitive pointer analysis that is applicable to real C pro- grams. For efficiency, we summarize the effects of pro- cedures using partial transfer functions. A partial transfer function (PTF) describes the behavior of a procedure assum- ing 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 empir- ical results demonstrate that this technique is successful —a single PTF per procedure is usually sufficient to obtain com- pletely context-sensitive results. Because many C programs use features such as type casts and pointer arithmetic to cir - cumvent 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 algo- rithm in the SUIF compiler system and we show that it runs efficiently for a set of C benchmarks.Keywords
This publication has 11 references indexed in Scilit:
- SUIFACM SIGPLAN Notices, 1994
- Interprocedural may-alias analysis for pointersPublished by Association for Computing Machinery (ACM) ,1994
- Context-sensitive interprocedural points-to analysis in the presence of function pointersPublished by Association for Computing Machinery (ACM) ,1994
- Pointer-induced aliasingACM SIGPLAN Notices, 1993
- A safe approximate algorithm for interprocedural aliasingPublished by Association for Computing Machinery (ACM) ,1992
- Semantical interprocedural parallelizationPublished by Association for Computing Machinery (ACM) ,1991
- Analysis of pointers and structuresPublished by Association for Computing Machinery (ACM) ,1990
- Parallelizing programs with recursive data structuresIEEE Transactions on Parallel and Distributed Systems, 1990
- An efficient method of computing static single assignment formPublished by Association for Computing Machinery (ACM) ,1989
- Detecting conflicts between structure accessesPublished by Association for Computing Machinery (ACM) ,1988