Flexible pointer analysis using assign-fetch graphs

  • Authors:
  • Marcio Buss;Daniel Brand;Vugranam Sreedhar;Stephen A. Edwards

  • Affiliations:
  • Columbia University, New York, NY;IBM T. J. Watson, Yorktown Heights, NY;IBM T. J. Watson, Hawthorne, NY;Columbia University, New York, NY

  • Venue:
  • Proceedings of the 2008 ACM symposium on Applied computing
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We propose a new abstraction for pointer analysis that represents reads and writes to memory instead of traditional points-to relations. Compared to points-to graphs, our Assign-Fetch Graph (AFG) leads to concise procedure summaries that can be used in any calling context. Also, its flexibility supports new analysis techniques with different trade-offs between speed and precision. For efficiency, we build a summary for each procedure that assumes distinct pointers from the environment are not aliased and restore soundness when the summary is used in a context with aliases. We present two pointer analysis techniques based on our AFG. The first takes the flow-insensitive view adopted by many authors; the second considers statement ordering. In addition to being more precise, we find that this "flow-aware" analysis runs faster. We conclude with experimental results showing it is practical.