Detail publikace
SkipFlow: Improving the Precision of Points-to Analysis using Primitive Values and Predicate Edges
Stancu Codrut (Oracle)
Vojnar Tomáš, prof. Ing., Ph.D. (UITS FIT VUT)
Wimmer Christian (Oracle)
points-to analýza, statická analýza, analýza ukazatelů, překladač, optimalizace
Typická points-to analýza, jako je Andersenova nebo Steensgaardova, může ztrácet na přesnosti, protože ignoruje strukturu větvení analyzovaného programu. Kromě toho se analýza points-to typicky zaměřuje pouze na objekty a nebere v úvahu instrukce manipulující s primitivními hodnotami. Tvrdíme, že takový přístup vede ke zbytečné ztrátě přesnosti, například když se z volání metod vracejí primitivní konstanty true a false. Navrhujeme novou rychlou points-to analýzu nazvanou SkipFlow, která interprocedurálně sleduje tok primitivních hodnot i objektů a explicitně zachycuje strukturu větvení kódu pomocí predikátových hran. Zároveň je však SkipFlow na rozdíl od tradiční analýzy citlivé na tok rychlý a lépe škálovatelný. SkipFlow aplikujeme na GraalVM Native Image, uzavřené řešení pro sestavování samostatných binárních souborů pro aplikace v jazyce Java. Implementaci vyhodnocujeme pomocí sady aplikací mikroslužeb i známých sad benchmarků. Ukazujeme, že SkipFlow snižuje velikost aplikace z hlediska dosažitelných metod v průměru o 9 %, aniž by se výrazně prodloužila doba analýzy.
@INPROCEEDINGS{FITPUB13202, author = "David Koz\'{a}k and Codrut Stancu and Tom\'{a}\v{s} Vojnar and Christian Wimmer", title = "SkipFlow: Improving the Precision of Points-to Analysis using Primitive Values and Predicate Edges", pages = "347--361", booktitle = "Proceedings of the 23rd ACM/IEEE International Symposium on Code Generation and Optimization", year = 2025, location = "New York, US", publisher = "Association for Computing Machinery", ISBN = "979-8-4007-1275-3", doi = "10.1145/3696443.3708932", language = "english", url = "https://www.fit.vut.cz/research/publication/13202" }