Title
Partial method compilation using dynamic profile information
Abstract
The traditional tradeoff when performing dynamic compilation is that of fast compilation time versus fast code performance. Most dynamic compilation systems for Java perform selective compilation and/or optimization at a method granularity. This is the not the optimal granularity level. However, compiling at a sub-method granularity is thought to be too complicated to be practical. This paper describes a straightforward technique for performing compilation and optimizations at a finer, sub-method granularity. We utilize dynamic profile data to determine intra-method code regions that are rarely or never executed, and compile and optimize the code without those regions. If a branch that was predicted to be rare is actually taken at run time, we fall back to the interpreter or dynamically compile another version of the code. By avoiding compiling and optimizing code that is rarely executed, we are able to decrease compile time significantly, with little to no degradation in performance. Futhermore, ignoring rarely-executed code can open up more optimization opportunities on the common paths. We present two optimizations---partial dead code elimination and rare-path-sensitive pointer and escape analysis---that take advantage of rare path information. Using these optimizations, our technique is able to improve performance beyond the compile time improvements
Year
DOI
Venue
2001
10.1145/504282.504295
OOPSLA
Keywords
Field
DocType
security,dynamic compilation,java
Unreachable code,Dead code elimination,Dynamic compilation,Programming language,Compile time,Computer science,Parallel computing,Single Compilation Unit,Just-in-time compilation,Tracing just-in-time compilation,Dead code
Conference
Volume
Issue
ISSN
36
11
0362-1340
ISBN
Citations 
PageRank 
1-58113-335-9
46
2.60
References 
Authors
24
1
Name
Order
Citations
PageRank
John Whaley173553.70