@inproceedings{32db738a88d149288c9247c4910a1b67,
title = "Soot class loading in the ROOTBEER GPU compiler",
abstract = "One of the first activities of the Soot program analysis framework is to load the classes for analysis. With the current class loader, more classes are loaded than necessary. The overhead in memory of these classes can make whole-program analysis of large binaries infeasible on systems with limited memory. This paper describes new algorithms and data structures to efficiently load Java Byte- code classes for whole program analysis in Soot. Our method uses a modified version of Rapid Type Analysis (RTA) to determine what classes, methods and fields would be reachable during program execution. This enables us to load significantly less information in memory to enable program analyses. We implemented our approach for loading Java bytecode in the Soot-based ROOTBKKR compiler. The new class loader loaded a Scene that had 58% to 64% less classes, representing memory savings of 44% to 82%.",
keywords = "Class loading, Java bytecode, Soot",
author = "Patt-Szeliga, {Philip C.} and Laverdi{\`e}re, {Marc Andr{\'e}} and Ettore Merlo and Fawcett, {James W.} and Welch, {Roy D.}",
year = "2013",
doi = "10.1145/2487568.2487573",
language = "English (US)",
isbn = "9781450322010",
series = "Proceedings of the 2nd ACM SIGPLAN International Workshop on State of the Art in Java Program Analysis, SOAP 2013",
pages = "19--24",
booktitle = "Proceedings of the 2nd ACM SIGPLAN International Workshop on State of the Art in Java Program Analysis, SOAP 2013",
note = "2nd ACM SIGPLAN International Workshop on State of the Art in Java Program Analysis, SOAP 2013 ; Conference date: 20-06-2013 Through 20-06-2013",
}