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.