Soot class loading in the ROOTBEER GPU compiler

Philip C. Patt-Szeliga, Marc André Laverdière, Ettore Merlo, James W. Fawcett, Roy D. Welch

Research output: Chapter in Book/Entry/PoemConference contribution

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%.

Original languageEnglish (US)
Title of host publicationProceedings of the 2nd ACM SIGPLAN International Workshop on State of the Art in Java Program Analysis, SOAP 2013
Pages19-24
Number of pages6
DOIs
StatePublished - 2013
Event2nd ACM SIGPLAN International Workshop on State of the Art in Java Program Analysis, SOAP 2013 - Seattle, WA, United States
Duration: Jun 20 2013Jun 20 2013

Publication series

NameProceedings of the 2nd ACM SIGPLAN International Workshop on State of the Art in Java Program Analysis, SOAP 2013

Other

Other2nd ACM SIGPLAN International Workshop on State of the Art in Java Program Analysis, SOAP 2013
Country/TerritoryUnited States
CitySeattle, WA
Period6/20/136/20/13

Keywords

  • Class loading
  • Java bytecode
  • Soot

ASJC Scopus subject areas

  • Computer Graphics and Computer-Aided Design
  • Software

Fingerprint

Dive into the research topics of 'Soot class loading in the ROOTBEER GPU compiler'. Together they form a unique fingerprint.

Cite this