Improving Thread-Modular Abstract Interpretation
summary
Presents a thread‑modular framework that formalizes analyses as side-effecting constraint systems with a new local trace semantics, proves soundness of instances, and implements generalized versions of GOBLINT’s protection-based analysis and an improved Miné-style propagation in the Goblint analyzer. Shows the two classic approaches are precision‑incomparable, designs a refinement that strictly improves both, and reports on 13 benchmarks (600–3000 LOC): analyses agree on 11, Mini loses precision on two (6% and 16% of global reads), while protection-based is fastest.
AI-written summary · about
chapters (23)
- 0:00Thread-modular analysis intro
- 1:25Multi-threaded analysis challenges
- 2:28Thread-modular limits
- 3:10Vajdani’s protection-based approach
- 4:13Protecting lock sets for globals
- 5:58Side effects in constraints
- 7:43Unlock-to-lock propagation
- 9:51Incomparable precision of both analysis styles
- 10:35Contributions and framework
- 11:18Local trace semantics
- 13:05Local traces defined
- 15:13Combining incompatible traces
- 16:59Connection to Mini’s analysis
- 18:03Deficiencies in analyses
- 18:45Ingredients for precision
- 20:12Combined analysis results
- 20:55Implementation setup
- 21:37Runtime benchmarks
- 21:59Precision insights
- 22:42Future work
- 23:45Q&A: Synchronization primitives
- 25:10Q&A: OS interrupts
- 28:30Q&A: Strong updates
