Welcome!
To use the personalized features of this site, please log in or register.
If you have forgotten your username or password, we can help.
|
 |
Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?
| Book Series | Lecture Notes in Computer Science |
| Publisher | Springer Berlin / Heidelberg |
| ISSN | 0302-9743 (Print) 1611-3349 (Online) |
| Volume | Volume 1781/2000 |
| Book | Compiler Construction |
| DOI | 10.1007/3-540-46423-9 |
| Copyright | 2000 |
| ISBN | 978-3-540-67263-0 |
| DOI | 10.1007/3-540-46423-9_2 |
| Pages | 18-34 |
| Subject Collection | Computer Science |
| SpringerLink Date | Saturday, January 01, 2000 |
| |
|
Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?
Raja Vallée-Rai5 , Etienne Gagnon5 , Laurie Hendren5 , Patrick Lam5 , Patrice Pominville5 and Vijay Sundaresan5 
| (5) |
Sable Research Group, School of Computer Science, McGill University, Canada |
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 Java’s stack-based bytecode;
Jimple, a typed three-address intermediate representation suitable for optimization; and Grimp, an aggregated version of Jimple.
Our approach to class file optimization is to first convert the stack-based bytecode into Jimple, a three-address form more
amenable to traditional program optimization, and then convert the optimized Jimple back to bytecode.
In order to demonstrate that our approach is feasible, we present experimental results showing the effects of processing class
files through our framework. In particular, we study the techniques necessary to effectively translate Jimple back to bytecode,
without losing performance. Finally, we demonstrate that class file optimization can be quite effective by showing the results
of some basic optimizations using our framework. Our experiments were done on ten benchmarks, including seven SPECjvm98 benchmarks,
and were executed on five different Java virtual machine implementations.
Fulltext Preview (Small, Large)
 References secured to subscribers.
|
|
|
|
|
|