Salvato in:
Dettagli Bibliografici
Autori principali: Kozak, David, Stancu, Codrut, Vojnar, Tomáš, Wimmer, Christian
Natura: Preprint
Pubblicazione: 2025
Soggetti:
Accesso online:https://arxiv.org/abs/2501.19150
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866915131247558656
author Kozak, David
Stancu, Codrut
Vojnar, Tomáš
Wimmer, Christian
author_facet Kozak, David
Stancu, Codrut
Vojnar, Tomáš
Wimmer, Christian
contents A typical points-to analysis such as Andersen's or Steensgaard's may lose precision because it ignores the branching structure of the analyzed program. Moreover, points-to analysis typically focuses on objects only, not considering instructions manipulating primitive values. We argue that such an approach leads to an unnecessary precision loss, for example, when primitive constants true and false flow out of method calls. We propose a novel lightweight points-to analysis called SkipFlow that interprocedurally tracks the flow of both primitives and objects, and explicitly captures the branching structure of the code using predicate edges. At the same time, however, SkipFlow is as lightweight and scalable as possible, unlike a traditional flow-sensitive analysis. We apply SkipFlow to GraalVM Native Image, a closed-world solution to building standalone binaries for Java applications. We evaluate the implementation using a set of microservice applications as well as well-known benchmark suites. We show that SkipFlow reduces the size of the application in terms of reachable methods by 9% on average without significantly increasing the analysis time.
format Preprint
id arxiv_https___arxiv_org_abs_2501_19150
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle SkipFlow: Improving the Precision of Points-to Analysis using Primitive Values and Predicate Edges
Kozak, David
Stancu, Codrut
Vojnar, Tomáš
Wimmer, Christian
Programming Languages
A typical points-to analysis such as Andersen's or Steensgaard's may lose precision because it ignores the branching structure of the analyzed program. Moreover, points-to analysis typically focuses on objects only, not considering instructions manipulating primitive values. We argue that such an approach leads to an unnecessary precision loss, for example, when primitive constants true and false flow out of method calls. We propose a novel lightweight points-to analysis called SkipFlow that interprocedurally tracks the flow of both primitives and objects, and explicitly captures the branching structure of the code using predicate edges. At the same time, however, SkipFlow is as lightweight and scalable as possible, unlike a traditional flow-sensitive analysis. We apply SkipFlow to GraalVM Native Image, a closed-world solution to building standalone binaries for Java applications. We evaluate the implementation using a set of microservice applications as well as well-known benchmark suites. We show that SkipFlow reduces the size of the application in terms of reachable methods by 9% on average without significantly increasing the analysis time.
title SkipFlow: Improving the Precision of Points-to Analysis using Primitive Values and Predicate Edges
topic Programming Languages
url https://arxiv.org/abs/2501.19150