ACM Home Page
Please provide us with feedback. Feedback
Soot - a Java bytecode optimization framework
Full text PdfPdf (80 KB)
Source IBM Centre for Advanced Studies Conference archive
Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research table of contents
Mississauga, Ontario, Canada
Page: 13  
Year of Publication: 1999
Authors
Raja Vallée-Rai  Sable Research Group, School of Computer Science, McGill University
Phong Co  Sable Research Group, School of Computer Science, McGill University
Etienne Gagnon  Sable Research Group, School of Computer Science, McGill University
Laurie Hendren  Sable Research Group, School of Computer Science, McGill University
Patrick Lam  Sable Research Group, School of Computer Science, McGill University
Vijay Sundaresan  Sable Research Group, School of Computer Science, McGill University
Sponsors
IBM Canada : IBM Canada
NRC : National Research Council - Canada
Publisher
IBM Press 
Bibliometrics
Downloads (6 Weeks): 16,   Downloads (12 Months): 118,   Citation Count: 65
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  

ABSTRACT

This paper presents Soot, a framework for optimizing Java bytecode. The framework is implemented in Java and supports three intermediate representations for representing Java bytecode: Baf, a streamlined representation of bytecode which is simple to manipulate; Jimple, a typed 3-address intermediate representation suitable for optimization; and Grimp, an aggregated version of Jimple suitable for decompilation. We describe the motivation for each representation, and the salient points in translating from one representation to another.In order to demonstrate the usefulness of the framework, we have implemented intraprocedural and whole program optimizations. To show that whole program bytecode optimization can give performance improvements, we provide experimental results for 12 large benchmarks, including 8 SPECjvm98 benchmarks running on JDK 1.2 for GNU/Linuxtm. These results show up to 8% improvement when the optimized bytecode is run using the interpreter and up to 21% when run using the JIT compiler.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
 
3
4
5
 
6
{6} Lars R. Clausen. A Java bytecode optimizer using side-effect analysis. Concurrency: Practice & Experience, 9(11):1031-1045, November 1997.
 
7
{7} Geoff A. Cohen, Jeffrey S. Chase, and David L. Kaminsky. Automatic program transformation with JOIE. In Proceedings of the USENIX 1998 Annual Technical Conference , pages 167-178, Berkeley, USA, June 15-19 1998. USENIX Association.
8
 
9
{9} DashOPro. .http://www.preemptive.com/products.html.
10
 
11
 
12
{12} Étienne Gagnon and Laurie Hendren. Intraprocedural Inference of Static Types for Java Bytecode. Sable Technical Report 1999-1, Sable Research Group, McGill University, March 1999.
 
13
{13} Robert Fitzgerald, Todd B. Knoblock, Erik Ruf, Bjarne Steensgaard, and David Tarditi. Marmot: an Optimizing Compiler for Java. Microsoft technical report, Microsoft Research, October 1998.
14
 
15
{15} JavaClass. . http://www.inf.fu-berlin.de/dahm/JavaClass/.
 
16
{16} Compaq JTrek. . http://www.digital.com/java/download/jtrek.
 
17
{17} Han Bok Lee and Benjamin G. Zorn. A Tool for Instrumenting Java Bytecodes. In The USENIX Symposium on Internet Technologies and Systems, pages 73-82, 1997.
 
18
 
19
 
20
{20} Gilles Muller, Bárbara Moura, Fabrice Bellard, and Charles Consel. Harissa: A flexible and efficient Java environment mixing byte-code and compiled code. In Proceedings of the 3rd Conference on Object-Oriented Technologies and Systems, pages 1-20, Berkeley, June 16-20 1997. Usenix Association.
 
21
{21} Todd A. Proebsting, Gregg Townsend, Patrick Bridges, John H. Hartman, Tim Newsham, and Scott A. Watterson. Toba: Java for applications: A way ahead of time (WAT) compiler. In Proceedings of the 3rd Conference on Object-Oriented Technologies and Systems, pages 41-54, Berkeley, June 16-20 1997. Usenix Association.
 
22
{22} SableCC. . http://www.sable.mcgill.ca/sablecc/.
 
23
{23} Tatiana Shpeisman and Mustafa Tikir. Generating Efficient Stack Code for Java. Technical report, University of Maryland, 1999.
 
24
{24} Soot - a Java Optimization Framework. . http://www.sable.mcgill.ca/soot/.
 
25
{25} 4thpass SourceGuard. . http://www.4thpass.com/sourceguard/.
 
26
{26} Vijay Sundaresan, Laurie Hendren, Chrislain Razafimahefa, Raja Vallée-Rai, Patrick Lam, and Étienne Gagnon. Practical Virtual Method Call Resolution for Java . Sable Technical Report 1999-2, Sable Research Group, McGill University, April 1999.
 
27
{27} SuperCede, Inc. SuperCede for Java. . http://www.supercede.com/.
 
28
{28} Frank Tip, Chris Laffra, Peter F. Sweeney, and David Streeter. Practical Experience with an Application Extractor for Java . IBM Research Report RC 21451, IBM Research, 1999.
 
29
{29} Tower Technology. Tower J. . http://www.twr.com/.
 
30
{30} Raja Vallée-Rai and Laurie J. Hendren. Jimple: Simplifying Java Bytecode for Analyses and Transformations. Sable Technical Report 1998-4, Sable Research Group, McGill University, July 1998.

CITED BY  65

Collaborative Colleagues:
Raja Vallée-Rai: colleagues
Phong Co: colleagues
Etienne Gagnon: colleagues
Laurie Hendren: colleagues
Patrick Lam: colleagues
Vijay Sundaresan: colleagues