Incremental and demand-driven points-to analysis using logic programming

  • Authors:
  • Diptikalyan Saha;C. R. Ramakrishnan

  • Affiliations:
  • University of Stony Brook, Stony Brook, NY;University of Stony Brook, Stony Brook, NY

  • Venue:
  • PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Several program analysis problems can be cast elegantly as a logic program. In this paper we show how recently-developed techniques for incremental evaluation of logic programs can be refined and used for deriving practical implementations of incremental program analyzers. Incremental program analyzers compute the changes to the analysis information due to small changes in the input program rather than re-analyzing the program. Demand-driven analyzers compute only the information requested by the client analysis/optimization. We describe a framework based on logic programming for implementing program analyses that combines incremental and demand driven techniques. We show the effectiveness of this approach by building a practical incremental and demand-driven context insensitive points-to analysis and evaluating this implementation for analyzing C programs with 10-70K lines of code. Experiments show that our technique can compute the changes to analysis information due to small changes in the input program in, on the average, 6% of the time it takes to reanalyze the program from scratch, and with little space overhead.