JOURNAL BROWSE
Search
Advanced SearchSearch Tips
Optimizing Constant Value Generation in Just-in-time Compiler for 64-bit JavaScript Engine
facebook(new window)  Pirnt(new window) E-mail(new window) Excel Download
  • Journal title : Journal of KIISE
  • Volume 43, Issue 1,  2016, pp.34-39
  • Publisher : Korean Institute of Information Scientists and Engineers
  • DOI : 10.5626/JOK.2016.43.1.34
 Title & Authors
Optimizing Constant Value Generation in Just-in-time Compiler for 64-bit JavaScript Engine
Choi, Hyung-Kyu; Lee, Jehyung;
 
 Abstract
JavaScript is widely used in web pages with HTML. Many JavaScript engines adopt Just-in-time compilers to accelerate the execution of JavaScript programs. Recently, many newly introduced devices are adopting 64-bit CPUs instead of 32-bit and Just-in-time compilers for 64-bit CPU are slowly being introduced in JavaScript engines. However, there are many inefficiencies in the currently available Just-in-time compilers for 64-bit devices. Especially, the size of code is significantly increased compared to 32-bit devices, mainly due to 64-bit wide addresses in 64-bit devices. In this paper, we are going to address the inefficiencies introduced by 64-bit wide addresses and values in the Just-in-time compiler for the V8 JavaScript engine and propose more efficient ways of generating constant values and addresses to reduce the size of code. We implemented the proposed optimization in the V8 JavaScript engine and measured the size of code as well as performance improvements with Octane and SunSpider benchmarks. We observed a 3.6% performance gain and 0.7% code size reduction in Octane and a 0.32% performance gain and 2.8% code size reduction in SunSpider.
 Keywords
JavaScript;64-bit;just-in-time compiler;constant values;code generation;optimization;
 Language
Korean
 Cited by
1.
연산자 분석을 통한 자바스크립트 가속화,박정환;한환수;

정보과학회 컴퓨팅의 실제 논문지, 2016. vol.22. 8, pp.399-404 crossref(new window)
1.
Accelerating Javascript Using Operator Analysis, KIISE Transactions on Computing Practices, 2016, 22, 8, 399  crossref(new windwow)
 References
1.
Ecma International (2015, Jun.). ECMAScript 2015 Language Specification (6th ed.) [Online]. Available: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf (downloaded 2015, Jul. 10)

2.
G. Richards, S. Lebresne, B. Burg, J. Vitek, "An Analysis of the Dynamic Behavior of JavaScript Programs," Proc. of the 2010 conference on Programming Language Design and Implementation, pp. 1-12, 2010

3.
W.-K. Jung, Y.-W. Kim and S.-M. Moon, "An Optimization for JavaScript Just-in-Time Compiler Using Variable Type Hint," Proc. of the KIISE Korea Computer Congress 2014, pp. 1400-1402, 2014. (in Korean)

4.
J. Aycock, "A brief history of just-in-time," ACM Computing Surveys, Vol. 35, Issue 2, pp. 97-113, 2003. crossref(new window)

5.
J. Nah, H. Kim, H. Kim, G. J, J. Lee, "Implementation of Register Allocator for JavaScript JIT Compiler," Proc. of the KIISE Korea Computer Congress 2011, pp. 194-197, 2011. (in Korean)

6.
H. Park, Y.-H. Yoo, S.-M. Moon, "Performance Analysis of Adaptive Compilation In V8 CrankShaft JavaScript Engine," Proc. of the KIISE Korea Computer Congress 2011, pp. 202-205, 2011. (in Korean)

7.
JavaScriptCore - Webkit [Online]. Available: http://trac.webkit.org/wiki/JavaScriptCore

8.
V8 JavaScript Engine [Online]. Available: http://code.google.com/p/v8/

9.
ARM Limited (2015, Mar. 25). ARMv8-A Reference Manual (Issue A.f) [Online]. Available: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0487a.f/index.html (downloaded 2015, Jul. 10)

10.
ARM Limited (2015, Mar. 24). ARM Cortex-A Series Programmer's Guide for ARMv8-A [Online]. Available: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0024a/ch05s01s03.html (downloaded 2015, Jul. 10)

11.
K. Venstermans, L. Eeckhout, K. Bosschere, "Object-relative addressing: compressed pointers in 64-bit java virtual machines," Proc. of the 21st European conference on Object-Oriented Programming (ECOOP'07), pp. 79-100, 2007.