Extending Basic Block Versioning with Typed Object Shapes

محفوظ في:
التفاصيل البيبلوغرافية
الحاوية / القاعدة:arXiv.org (Jul 9, 2015), p. n/a
المؤلف الرئيسي: Chevalier-Boisvert, Maxime
مؤلفون آخرون: Feeley, Marc
منشور في:
Cornell University Library, arXiv.org
الموضوعات:
الوصول للمادة أونلاين:Citation/Abstract
Full text outside of ProQuest
الوسوم: إضافة وسم
لا توجد وسوم, كن أول من يضع وسما على هذه التسجيلة!

MARC

LEADER 00000nab a2200000uu 4500
001 2083217805
003 UK-CbPIL
022 |a 2331-8422 
035 |a 2083217805 
045 0 |b d20150709 
100 1 |a Chevalier-Boisvert, Maxime 
245 1 |a Extending Basic Block Versioning with Typed Object Shapes 
260 |b Cornell University Library, arXiv.org  |c Jul 9, 2015 
513 |a Working Paper 
520 3 |a Typical JavaScript (JS) programs feature a large number of object property accesses. Hence, fast property reads and writes are crucial for good performance. Unfortunately, many (often redundant) dynamic checks are implied in each property access and the semantic complexity of JS makes it difficult to optimize away these tests through program analysis. We introduce two techniques to effectively eliminate a large proportion of dynamic checks related to object property accesses. Typed shapes enable code specialization based on object property types without potentially complex and expensive analyses. Shape propagation allows the elimination of redundant shape checks in inline caches. These two techniques combine particularly well with Basic Block Versioning (BBV), but should be easily adaptable to tracing Just-In-Time (JIT) compilers and method JITs with type feedback. To assess the effectiveness of the techniques presented, we have implemented them in Higgs, a type-specializing JIT compiler for JS. The techniques are compared to a baseline using polymorphic Inline Caches (PICs), as well as commercial JS implementations. Empirical results show that across the 26 benchmarks tested, these techniques eliminate on average 48% of type tests, reduce code size by 17% and reduce execution time by 25%. On several benchmarks, Higgs performs better than current production JS virtual machines 
653 |a Program verification (computers) 
653 |a Compilers 
653 |a Complexity 
653 |a Empirical analysis 
653 |a Benchmarks 
653 |a Virtual environments 
700 1 |a Feeley, Marc 
773 0 |t arXiv.org  |g (Jul 9, 2015), p. n/a 
786 0 |d ProQuest  |t Engineering Database 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/2083217805/abstract/embedded/6A8EOT78XXH2IG52?source=fedsrch 
856 4 0 |3 Full text outside of ProQuest  |u http://arxiv.org/abs/1507.02437