ACM Home Page
Please provide us with feedback. Feedback
Partial method compilation using dynamic profile information
Full text PdfPdf (1.73 MB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Tampa Bay, FL, USA
Pages: 166 - 179  
Year of Publication: 2001
ISBN:1-58113-335-9
Also published in ...
Author
John Whaley  Computer Systems Laboratory, Stanford University, Stanford, CA
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 16,   Downloads (12 Months): 55,   Citation Count: 21
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/504282.504295
What is a DOI?

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


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
C. S. Ananian. FLEX compiler infrastructure. http://www.flex-compiler.lcs.mit .edu, 2001.
3
4
5
6
 
7
 
8
D. Bruening and E. Duesterwald. Exploring optimal compilation unit shapes for an embedded just-in-time compiler. In Proceedings of the 2000 A CM Workshop on Feedback-Directed and Dynamic Optimization FDDO-3, Dec. 2000.
9
 
10
11
 
12
P. P. Chang, D. M. Lavery, and W. M. Hwu. The effect of code expanding optimizations of instruction cache design. Technical Report CRHC-91-18, Coordinated Science Lab, University of Illinois, Jan. 1992.
13
 
14
J. B. Chen and B. D. D. Leupen. Improving instruction locality with just-in-time code layout. In USENIX, editor, The USENIX Windows NT Workshop 1997, August 11-13, 1997. Seattle, Washington, pages 25-32, Berkeley, CA, USA, Aug. 1997. USENIX.
15
 
16
M. Dahm. Byte code engineering library. http://bcel.sourceforge.net, 2000.
 
17
 
18
J. A. Fisher. Trace scheduling : A technique for global microcode compaction. IEEE Transactions on Computers, C-30(7):478-490, 1981.
 
19
 
20
 
21
 
22
L. H. Holley and B. K. Rosen. Qualified data flow problems. IEEE Transactions on Software Engineering, 7(1):60-78, Jan. 1981.
 
23
 
24
 
25
International Business Machines. IBM Developer Kit, Java(tm) Technology Edition, 2001. http: //www.ibm.com/j ava/jdk/index.html.
26
27
28
 
29
K. Kennedy. A Survey of data flow analysis techniques. In S. S. Muchnick and N. D. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 1, pages 5-54. Prentice-Hall, 1981.
30
31
 
32
 
33
34
 
35
S. Microsystems. Java virtual machine debug interface reference. http: / /java.sun.com /'products/ jdk/1.3 / docs/ guide/ jpda/jvmdi-spec.html.
 
36
37
 
38
M. Paleczny, C. Vick, and C. Click. The Java HotSpot(TM) server compiler. In USENIX Java Virtual Machine Research and Technology Symposium (JVM'01), 2001.
39
 
40
M. Poletto. Path splitting: a technique for improving data flow analysis. Master's thesis, Massachusetts Institute of Technology, May 1995.
41
 
42
43
 
44
The Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks, 1998. http://www.spec.org/osg/jvm98/.
 
45
J. Whaley. joeq virtual machine. http://joeq.sourceforge.net, 2001.
46

CITED BY  21