| Trace-based just-in-time type specialization for dynamic languages |
| Full text |
Pdf
(1.22 MB)
|
Source
|
Conference on Programming Language Design and Implementation
archive
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
table of contents
Dublin, Ireland
SESSION: Parallelism, performance, and traces
table of contents
Pages 465-478
Year of Publication: 2009
ISBN:978-1-60558-392-1
Also published in ...
|
|
Authors
|
|
Andreas Gal
|
Mozilla Corporation, Mountain View, CA, USA
|
|
Brendan Eich
|
Mozilla Corporation, Mountain View, CA, USA
|
|
Mike Shaver
|
Mozilla Corporation, Mountain View, CA, USA
|
|
David Anderson
|
Mozilla Corporation, Mountain View, CA, USA
|
|
David Mandelin
|
Mozilla Corporation, Mountain View, CA, USA
|
|
Mohammad R. Haghighat
|
Intel Corporation, Santa Clara, CA, USA
|
|
Blake Kaplan
|
Mozilla Corporation, Mountain View, CA, USA
|
|
Graydon Hoare
|
Mozilla Corporation, Mountain View, CA, USA
|
|
Boris Zbarsky
|
Mozilla Corporation, Mountain View, CA, USA
|
|
Jason Orendorff
|
Mozilla Corporation, Mountain View, CA, USA
|
|
Jesse Ruderman
|
Mozilla Corporation, Mountain View, CA, USA
|
|
Edwin W. Smith
|
Adobe Corportation, San Jose, CA, USA
|
|
Rick Reitmaier
|
Adobe Corporation, San Jose, CA, USA
|
|
Michael Bebenita
|
University of California, Irvine, Irvine, CA, USA
|
|
Mason Chang
|
University of California, Irvine, Irvine, CA, USA
|
|
Michael Franz
|
University of California, Irvine, Irvine, CA, USA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 71, Downloads (12 Months): 244, Citation Count: 2
|
|
|
ABSTRACT
Dynamic languages such as JavaScript are more difficult to compile than statically typed ones. Since no concrete type information is available, traditional compilers need to emit generic code that can handle all possible type combinations at runtime. We present an alternative compilation technique for dynamically-typed languages that identifies frequently executed loop traces at run-time and then generates machine code on the fly that is specialized for the actual dynamic types occurring on each path through the loop. Our method provides cheap inter-procedural type specialization, and an elegant and efficient way of incrementally compiling lazily discovered alternative paths through nested loops. We have implemented a dynamic compiler for JavaScript based on our technique and we have measured speedups of 10x and more for certain benchmark programs.
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
|
LuaJIT roadmap 2008 -- http://lua-users.org/lists/lua-l/2008-02/msg00051.html.
|
| |
2
|
Mozilla Firefox web browser and Thunderbird email client -- http://www.mozilla.com.
|
| |
3
|
SPECJVM98 -- http://www.spec.org/jvm98/.
|
| |
4
|
SpiderMonkey (JavaScript-C) Engine -- http://www.mozilla.org/js/spidermonkey/.
|
| |
5
|
Surfin' Safari -- Blog Archive -- Announcing SquirrelFish Extreme -- http://webkit.org/blog/214/introducing-squirrelfish-extreme/.
|
| |
6
|
Alfred V. Aho , Monica S. Lam , Ravi Sethi , Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools (2nd Edition), Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2006
|
 |
7
|
Vasanth Bala , Evelyn Duesterwald , Sanjeev Banerjia, Dynamo: a transparent dynamic optimization system, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.1-12, June 18-21, 2000, Vancouver, British Columbia, Canada
|
| |
8
|
|
 |
9
|
C. Chambers , D. Ungar, Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.146-160, June 19-23, 1989, Portland, Oregon, United States
|
| |
10
|
|
 |
11
|
|
| |
12
|
C. Garrett, J. Dean, D. Grove, and C. Chambers. Measurement and Application of Dynamic Receiver Class Distributions. 1994.
|
| |
13
|
J. Ha, M. R. Haghighat, S. Cong, and K. S. McKinley. A concurrent trace-based just-in-time compiler for javascript. Dept.of Computer Sciences, The University of Texas at Austin, TR--09--06, 2009.
|
| |
14
|
B. McCloskey. Personal communication.
|
 |
15
|
|
 |
16
|
|
| |
17
|
M. Salib. Starkiller: A Static Type Inferencer and Compiler for Python. Master's Thesis, 2004.
|
 |
18
|
|
 |
19
|
|
CITED BY 2
|
|
|
|
|
Carl Friedrich Bolz , Antonio Cuni , Maciej Fijalkowski , Armin Rigo, Tracing the meta-level: PyPy's tracing JIT compiler, Proceedings of the 4th workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems, p.18-25, July 06-06, 2009, Genova, Italy
|
|