@inproceedings{50a66eb44f7a4f71a7e735958c79a6f7,
title = "ShortCut: Architectural support for fast object access in scripting languages",
abstract = "The same flexibility that makes dynamic scripting languages appealing to programmers is also the primary cause of their low performance. To access objects of potentially different types, the compiler creates a dispatcher with a series of if statements, each performing a comparison to a type and a jump to a handler. This induces major overhead in instructions executed and branches mispredicted. This paper proposes architectural support to signifcantly improve the effciency of accesses to objects. The idea is to modify the instruction that calls the dispatcher so that, under most conditions, it skips most of the branches and instructions needed to reach the correct handler, and sometimes even the execution of the handler itself. Our novel architecture, called ShortCut, performs two levels of optimization. Its Plain design transforms the call to the dispatcher into a call to the correct handler-bypassing the whole dispatcher execution. Its Aggressive design transforms the call to the dispatcher into a simple load or store-bypassing the execution of both dispatcher and handler. We implement the ShortCut software in the state-of-the-art Google V8 JIT compiler, and the ShortCut hardware in a simulator. We evaluate ShortCut with the Octane and SunSpider JavaScript application suites. Plain ShortCut reduces the average execution time of the applications by 30% running under the baseline compiler, and by 11% running under the maximum level of compiler optimization. Aggressive ShortCut performs only slightly better.",
keywords = "Inline Caching, JavaScript, Microarchitecture, Scripting Language",
author = "Jiho Choi and Thomas Shull and Garzaran, {Maria J.} and Josep Torrellas",
note = "Publisher Copyright: {\textcopyright} 2017 Association for Computing Machinery.; 44th Annual International Symposium on Computer Architecture - ISCA 2017 ; Conference date: 24-06-2017 Through 28-06-2017",
year = "2017",
month = jun,
day = "24",
doi = "10.1145/3079856.3080237",
language = "English (US)",
series = "Proceedings - International Symposium on Computer Architecture",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
pages = "494--506",
booktitle = "ISCA 2017 - 44th Annual International Symposium on Computer Architecture - Conference Proceedings",
address = "United States",
}