2000
DOI: 10.1007/3-540-46423-9_2
|View full text |Cite
|
Sign up to set email alerts
|

Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?

Abstract: This paper presents Soot, a framework for optimizing Java TM 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… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
199
0

Year Published

2002
2002
2022
2022

Publication Types

Select...
5
3

Relationship

1
7

Authors

Journals

citations
Cited by 246 publications
(214 citation statements)
references
References 9 publications
0
199
0
Order By: Relevance
“…The key reason is dynamic dispatch: the target of a call depends on the runtime type of the receiver of the call. Because the receiver could have been created anywhere in the program, a sound algorithm must either analyze the whole program [1,6,17,21,34], or make very conservative assumptions about the receiver type (e.g., Class Hierarchy Analysis [9]). Additionally, due to the large sizes of common libraries, whole-program analysis of even trivial programs is expensive [7,27,28].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…The key reason is dynamic dispatch: the target of a call depends on the runtime type of the receiver of the call. Because the receiver could have been created anywhere in the program, a sound algorithm must either analyze the whole program [1,6,17,21,34], or make very conservative assumptions about the receiver type (e.g., Class Hierarchy Analysis [9]). Additionally, due to the large sizes of common libraries, whole-program analysis of even trivial programs is expensive [7,27,28].…”
Section: Introductionmentioning
confidence: 99%
“…1 Construction of partial call graphs is an often-requested feature in static analysis frameworks for Java. On the mailing list of the Soot framework [34], which analyzes the whole program to construct a call graph, dozens of users have requested partial call graph construction [4]. One popular approach for generating partial call graphs, used for example in the Wala framework [17], is to define an analysis scope of the classes to be analyzed.…”
Section: Introductionmentioning
confidence: 99%
“…We implemented the analysis on the Soot analysis framework [8] and evaluated it on the 19 Java programs shown in Table 1. All experiments were conducted on a quadcore machine with an Intel Xeon X3363 2.83GHZ processor, running Linux 2.6.18.…”
Section: Discussionmentioning
confidence: 99%
“…soot-c. soot-c is a part of the Soot analysis framework [8] benchmarked in the Ashes benchmarks [11]. One top data structure reported by our analysis is rooted at a StmtValueBoxPair object created in a loop (in a constructor of jimple.SimpleLocalUse) that builds def-use relationships as follows:…”
Section: Case Studiesmentioning
confidence: 99%
“…We have implemented a simple prototype of the OSP algorithm in Java for Java programs, using the Soot [17] framework for program instrumentation. The architecture of the implementation is described in Figure 2.…”
Section: Prototype Implementationmentioning
confidence: 99%