ABSTRACT
We define the reachability-bound problem to be the problem of finding a symbolic worst-case bound on the number of times a given control location inside a procedure is visited in terms of the inputs to that procedure. This has applications in bounding resources consumed by a program such as time, memory, network-traffic, power, as well as estimating quantitative properties (as opposed to boolean properties) of data in programs, such as information leakage or uncertainty propagation. Our approach to solving the reachability-bound problem brings together two different techniques for reasoning about loops in an effective manner. One of these techniques is an abstract-interpretation based iterative technique for computing precise disjunctive invariants (to summarize nested loops). The other technique is a non-iterative proof-rules based technique (for loop bound computation) that takes over the role of doing inductive reasoning, while deriving its power from the use of SMT solvers to reason about abstract loop-free fragments.
Our solution to the reachability-bound problem allows us to compute precise symbolic complexity bounds for several loops in .Net base-class libraries for which earlier techniques fail. We also illustrate the precision of our algorithm for disjunctive invariant computation (which has a more general applicability beyond the reachability-bound problem) on a set of benchmark examples.
- Z3 Theorem Prover. research.microsoft.com/projects/Z3/.Google Scholar
- E. Albert, P. Arenas, S. Genaim, and G. Puebla. Automatic inference of upper bounds for recurrence relations in cost analysis. In SAS, 2008. Google Scholar
Digital Library
- A. M. Ben--Amram. Size-change termination, monotonicity constraints and ranking functions. In CAV, pages 109--123, 2009. Google Scholar
Digital Library
- J. Berdine, A. Chawdhary, B. Cook, D. Distefano, and P. O'Hearn. Variance analyses from invariance analyses. In POPL, 2007. Google Scholar
Digital Library
- D. Beyer, T. A. Henzinger, R. Majumdar, and A. Rybalchenko. Path invariants. In PLDI, pages 300--309, 2007. Google Scholar
Digital Library
- A. Bradley, Z. Manna, and H. Sipma. Termination of polynomial programs. In VMCAI, 2005. Google Scholar
Digital Library
- S. Chaudhuri, S. Gulwani, and R. Lublinerman. Continuity analysis of programs. In POPL, 2010. Google Scholar
Digital Library
- B. Cook, A. Podelski, and A. Rybalchenko. Termination proofs for systems code. In PLDI, pages 415--426, 2006. Google Scholar
Digital Library
- P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In POPL, pages 238--252, 1977. Google Scholar
Digital Library
- P. Cousot and N. Halbwachs. Automatic Discovery of Linear Restraints among Variables of a Program. In POPL, 1978. Google Scholar
Digital Library
- K. Crary and S. Weirich. Resource bound certification. In POPL '00. Google Scholar
Digital Library
- S. Goldsmith, A. Aiken, and D. S. Wilkerson. Measuring empirical computational complexity. In ESEC/SIGSOFT FSE, 2007. Google Scholar
Digital Library
- D. Gopan and T. W. Reps. Lookahead widening. In CAV, 2006. Google Scholar
Digital Library
- D. Gopan and T. W. Reps. Guided static analysis. In SAS, 2007. Google Scholar
Digital Library
- B. S. Gulavani and S. Gulwani. A numerical abstract domain based on expression abstraction and max operator with application in timing analysis. In CAV, pages 370--384, 2008. Google Scholar
Digital Library
- S. Gulwani, S. Jain, and E. Koskinen. Control-flow refinement and progress invariants for bound analysis. In PLDI, 2009. Google Scholar
Digital Library
- S. Gulwani and S. Juvekar. Bound analysis using backward symbolic execution. Technical report, Oct 2009.Google Scholar
- S. Gulwani, T. Lev-Ami, and M. Sagiv. A combination framework for tracking partition sizes. In POPL, 2009. Google Scholar
Digital Library
- S. Gulwani, K. Mehra, and T. Chilimbi. Speed: precise and efficient static estimation of program computational complexity. In POPL '09. Google Scholar
Digital Library
- M. Handjieva and S. Tzolovski. Refining static analyses by tracebased partitioning using control flow. In SAS, pages 200--214, 1998.Google Scholar
- T. Henzinger. From boolean to quantitative system specifications, keynote. In Ist Workshop on Quantitative Analysis of Software. http://research.microsoft.com/users/sumitg/qa09/keynote.pdf, 2009.Google Scholar
- S. Jost, H. Loidl, K. Hammond, andM. Hofmann. Static determination of quant. resource usage for higher-order programs. In POPL '10. Google Scholar
Digital Library
- P. Malacaria. Assessing security threats of looping constructs. In POPL, pages 225--235, 2007. Google Scholar
Digital Library
- A. Miné. The octagon abstract domain. In WCRE, 2001.Google Scholar
Cross Ref
- S. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997. Google Scholar
Digital Library
- Microsoft Phoenix Compiler, research.microsoft.com/phoenix/.Google Scholar
- A. Podelski and A. Rybalchenko. A complete method for the synthesis of linear ranking functions. In VMCAI'04.Google Scholar
- A. Podelski and A. Rybalchenko. Transition invariants. In LICS '04. Google Scholar
Digital Library
- C. Popeea and W.-N. Chin. Inferring disjunctive postconditions. In ASIAN, pages 331--345, 2006. Google Scholar
Digital Library
- A. Prantl, J. Knoop, M. Schordan, and M. Triska. Constraint solving for high-level wcet analysis. CoRR, 2009.Google Scholar
- H. S. Warren. Hacker's Delight. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2002. Google Scholar
Digital Library
- R.Wilhelm, J. Engblom, A. Ermedahl, N. Holsti, S. Thesing, D. Whalley, G. Bernat, C. Ferdinand, R. Heckmann, F. Mueller, I. Puaut, P. Puschner, J. Staschulat, and P. Stenström. The Determination of Worst-Case Execution Times--Overview of the Methods and Survey of Tools. In ACM Transactions on Embedded Computing Systems (TECS), 2007. Google Scholar
Digital Library
Index Terms
The reachability-bound problem
Recommendations
The reachability-bound problem
PLDI '10We define the reachability-bound problem to be the problem of finding a symbolic worst-case bound on the number of times a given control location inside a procedure is visited in terms of the inputs to that procedure. This has applications in bounding ...
Generation of parallel synchronization-free tiled code
A novel approach to generation of parallel synchronization-free tiled code for the loop nest is presented. It is derived via a combination of the Polyhedral and Iteration Space Slicing frameworks. It uses the transitive closure of loop nest dependence ...
Free scheduling for statement instances of parameterized arbitrarily nested affine loops
An approach is presented permitting us to build free scheduling for statement instances of affine loops. Under the free schedule, loop statement instances are executed as soon as their operands are available. This allows us to extract maximal fine-...







Comments