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

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Stemmler, Fabian, Schwarz, Michael, Erhard, Julian, Tilscher, Sarah, Seidl, Helmut
Natura: Preprint
Pubblicazione: 2025
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866912316419735552
author Stemmler, Fabian
Schwarz, Michael
Erhard, Julian
Tilscher, Sarah
Seidl, Helmut
author_facet Stemmler, Fabian
Schwarz, Michael
Erhard, Julian
Tilscher, Sarah
Seidl, Helmut
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2504_06026
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Taking out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static Analyses
Stemmler, Fabian
Schwarz, Michael
Erhard, Julian
Tilscher, Sarah
Seidl, Helmut
Programming Languages
Software Engineering
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.
title Taking out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static Analyses
topic Programming Languages
Software Engineering
url https://arxiv.org/abs/2504.06026