Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?
Raja Vallée-Rai,Etienne Gagnon,Laurie Hendren,Patrick Lam,Patrice Pominville,Vijay Sundaresan +5 more
- 25 Mar 2000
- pp 18-34
TL;DR: The 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.
read more
Abstract: This paper presents Soot, a framework for optimizing Java™ bytecode. The framework is implementedin 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 executedon five different Java virtual machine implementations.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Soot: a Java bytecode optimization framework
Raja Vallée-Rai,Phong Co,Etienne Gagnon,Laurie Hendren,Patrick Lam,Vijay Sundaresan +5 more
- 01 Nov 2010
TL;DR: Soot, a framework for optimizing Java* bytecode, 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.
•Proceedings Article
A study of android application security
William Enck,Damien Octeau,Patrick McDaniel,Swarat Chaudhuri +3 more
- 08 Aug 2011
TL;DR: A horizontal study of popular free Android applications uncovered pervasive use/misuse of personal/ phone identifiers, and deep penetration of advertising and analytics networks, but did not find evidence of malware or exploitable vulnerabilities in the studied applications.
Information-Flow Analysis of Android Applications in DroidSafe
Michael I. Gordon,Deokhwan Kim,Jeff H. Perkins,Limei Gilham,Nguyen Nguyen,Martin Rinard +5 more
- 01 Jan 2015
TL;DR: DroidSafe achieves unprecedented precision and accuracy for Android information flow analysis and detects all malicious information flow leaks inserted into 24 real-world Android applications by three independent, hostile Red-Team organizations.
Scaling Java points-to analysis using SPARK
Ondřej Lhoták,Laurie Hendren +1 more
- 07 Apr 2003
TL;DR: SPARK is introduced, a flexible framework for experimenting with points-to analyses for Java that supports equality- and subset-based analyses, variations in field sensitivity, respect for declared types, variationsIn call graph construction, off-line simplification, and several solving algorithms.
Parameterized object sensitivity for points-to analysis for Java
TL;DR: This work presents object sensitivity, a new form of context sensitivity for flow-insensitive points-to analysis for Java, and proposes a parameterization framework that allows analysis designers to control the tradeoffs between cost and precision in the object-sensitive analysis.
488
References
•Book
Compilers: Principles, Techniques, and Tools
Alfred V. Aho,Ravi Sethi,Jeffrey D. Ullman +2 more
- 01 Jan 1986
TL;DR: This book discusses the design of a Code Generator, the role of the Lexical Analyzer, and other topics related to code generation and optimization.
9.7K
•Book
Advanced Compiler Design and Implementation
Steven S. Muchnick
- 01 Jan 1997
TL;DR: Advanced Compiler Design and Implementation by Steven Muchnick Preface to Advanced Topics
2.6K
An efficient method of computing static single assignment form
Ron Cytron,Jeanne Ferrante,Barry K. Rosen,Mark N. Wegman,F. K. Zadeck +4 more
- 03 Jan 1989
TL;DR: This paper presents strong evidence that static single assignment form and the control dependence graph can be of practical use in optimization, and presents a new algorithm that efficiently computes these data structures for arbitrary control flow graph.
Fast, effective code generation in a just-in-time Java compiler
Ali-Reza Adl-Tabatabai,Michal Cierniak,Guei-Yuan Lueh,Vishesh Parikh,James M. Stichnoth +4 more
- 01 May 1998
TL;DR: The structure of a Java JIT compiler for the Intel Architecture is presented, the lightweight implementation of JIT compilation optimizations are described, and the performance benefits and tradeoffs of the optimizations are evaluated.
•Proceedings Article
Toba: Java For Applications: A Way Ahead of Time (WAT) Compiler
Todd A. Proebsting,Gregg M. Townsend,Patrick G. Bridges,John H. Hartman,Tim Newsham,Scott A. Watterson +5 more
- 16 Jun 1997
TL;DR: Toba is a system for generating efficient standalone Java applications that includes a Java-bytecode-to-C compiler, a garbage collector, a threads package, and Java API support.
151
Related Papers (5)
Ondřej Lhoták,Laurie Hendren +1 more
- 07 Apr 2003
David F. Bacon,Peter F. Sweeney +1 more
- 01 Oct 1996
Tim Lindholm,Frank Yellin +1 more
- 19 Sep 1996
Stephen M. Blackburn,Robin Garner,Chris Hoffmann,Asjad M. Khang,Kathryn S. McKinley,Rotem Bentzur,Amer Diwan,Daniel Feinberg,Daniel Frampton,Samuel Z. Guyer,Martin Hirzel,Antony L. Hosking,Maria Jump,Han Lee,J. Eliot B. Moss,Aashish Phansalkar,Darko Stefanovic,Thomas VanDrunen,Daniel von Dincklage,Ben Wiedermann +19 more
- 16 Oct 2006