Soot class loading in the rootbeer GPU compiler

Philip C. Pratt-Szeliga, Marc-André Laverdière, Ettore Merlo, James W. Fawcett, Roy D. Welch
2013 Proceedings of the 2nd ACM SIGPLAN International Workshop on State Of the Art in Java Program analysis - SOAP '13  
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 Bytecode classes for whole program analysis in Soot. Our method uses a modified version of Rapid Type Analysis
more » ... (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 ROOTBEER compiler. The new class loader loaded a Scene that had 58% to 64% less classes, representing memory savings of 44% to 82%.
doi:10.1145/2487568.2487573 dblp:conf/pldi/Pratt-SzeligaLMFW13 fatcat:jjitkpy65fdttmkaq6uwvgvhsu