Precise Interprocedural Analysis using Random Interpretation (Revised version)
Necula, George C.
Technical Report Identifier: CSD-04-1353
Abstract: We describe a unified framework for random interpretation that generalizes previous randomized intra-procedural analyses, and also extends naturally to efficient inter-procedural analyses. There is no such natural extension known for deterministic algorithms. We present a general technique for extending any intra-procedural random interpreter to perform a context-sensitive inter-procedural analysis with only polynomial increase in running time. This technique involves computing random summaries of procedures, which are complete and probabilistically sound.
As an instantiation of this general technique, we obtain the first polynomial-time randomized algorithm that discovers all linear equalities inter-procedurally in a program that has been abstracted using linear assignments. We also obtain the first polynomial-time randomized algorithm for precise interprocedural value numbering over a program that uses unary uninterpreted functions.
We present experimental evidence that quantifies the precision and relative speed of the analysis for discovering linear equalities along two dimensions: intra-procedural vs. inter-procedural, and deterministic vs. randomized. We also present results that show the variation of the error probability in the randomized analysis with changes in algorithm parameters. These results suggest that the error probability is much lower than our conservative theoretical bounds.