Improving Thread-Modular Abstract Interpretation
summary
Formalizes thread-modular non-relational value analyses with a new local trace semantics and a side-effecting constraint-system framework, casts Goblint’s generalization and Miné’s approach as instances, and builds improved lock-centered, write-centered and combined analyses. Evaluated in Goblint on 13 C programs (600–3000 LOC). Protection-based analysis runs up to an order of magnitude faster; all analyses agree on 11/13 benchmarks, and Miné-style misses precision on two benchmarks (6% and 16% of global reads). The combined analysis is strictly more precise than either prior approach.
AI-written summary · about
chapters (17)
- 0:00Intro
- 0:13Multi-Threaded Programs
- 0:32Analysis of Multithreaded Programs is challenging
- 1:08Thread-Modular Analysis
- 1:43Setting
- 2:38Example Vojdani-style
- 4:18Side Effecting Constraint Systems
- 7:23Our Concrete Semantics
- 7:48Global Trace
- 9:16Side Effecting Formulation of the Local Trace Semantics
- 10:57Close connection also with Mine style analysis
- 11:36Possiblities for Improvement
- 12:07Ingredients for more precise analyses: Globals
- 13:28Preliminary Experimental Evaluation
- 13:46Runtime
- 13:59Precision
- 14:42Future Work
