Taking Out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static Analyses


연구 분야: Strategies



학회: Proceedings of the ACM on Programming Languages, Volume 9, Issue PLDI


초록

Static analysis of real-world programs combines flow- and context-sensitive analyses of local program states with computation of flow- and context-insensitive invariants at globals, that, e.g., abstract data shared by multiple threads. The values of locals and globals may mutually depend on each other, with the analysis of local program states both making contributions to globals and querying their values. Usually, all contributions to globals are accumulated during fixpoint iteration, with widening applied to enforce termination. Such flow-insensitive information often becomes unnecessarily imprecise and can include superfluous contributions — trash — which, in turn, may be toxic to the precision of the overall analysis. To recover precision of globals, we propose techniques complementing each other: Narrowing on globals differentiates contributions by origin; reluctant widening limits the amount of widening applied at globals; and finally, abstract garbage collection undoes contributions to globals and propagates their withdrawal. The experimental evaluation shows that these techniques increase the precision of mixed flow-sensitive analyses at a reasonable cost.


Author Profile
Fabian Stemmler

TU Munich Munich Germany

Germany
Author Profile
Michael Schwarz

TU Munich Munich Germany

Germany
Author Profile
Julian Erhard

TU Munich Munich Germany

Germany

📄 논문 정보

발행 연도 2025년
인용수 0
출판 국가 Germany
사이트 ACM
좋아요 수 0

연관 논문 목록 (3건)