口译员寄存器的自动本地化:提高高效口译员的表现

G. Polito, Nahuel Palumbo, Soufyane Labsari, Stéphane Ducasse, P. Tesone
{"title":"口译员寄存器的自动本地化:提高高效口译员的表现","authors":"G. Polito, Nahuel Palumbo, Soufyane Labsari, Stéphane Ducasse, P. Tesone","doi":"10.1145/3532512.3532518","DOIUrl":null,"url":null,"abstract":"Language interpreters are generally slower than (JIT) compiled implementation because they trade off simplicity for performance and portability. They are nevertheless still important in modern Virtual Machines (VMs): e.g.,, not all code is hot and arrives at later compilation stages. One of their under-studied features in the literature is the idea of interpreter registers: interpreter variables that are critical to the efficient execution of the interpreter loop. In this paper, we present an automatic interpreter transformation called autolocalisation. Autolocalisation makes interpreter registers local to the interpreter loop to keep them in registers. It moreover makes those values available for other routines in the VM runtime automatically when required. We build autolocalization in Slang, Pharo’s VM generator framework, and evaluate the performance of several benchmarks on different configurations localizing IP, SP, FP, and their combinations. We show that localizing critical interpreters yields performance improvements of up to 1.92x on x86-64. Moreover, we show that the performance of our automatic approach is comparable to the previous approach handwritten in the VM while making it easier to read, modify and follow.","PeriodicalId":245819,"journal":{"name":"Companion Proceedings of the 6th International Conference on the Art, Science, and Engineering of Programming","volume":"51 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Interpreter Register Autolocalisation: Improving the Performance of Efficient Interpreters\",\"authors\":\"G. Polito, Nahuel Palumbo, Soufyane Labsari, Stéphane Ducasse, P. Tesone\",\"doi\":\"10.1145/3532512.3532518\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Language interpreters are generally slower than (JIT) compiled implementation because they trade off simplicity for performance and portability. They are nevertheless still important in modern Virtual Machines (VMs): e.g.,, not all code is hot and arrives at later compilation stages. One of their under-studied features in the literature is the idea of interpreter registers: interpreter variables that are critical to the efficient execution of the interpreter loop. In this paper, we present an automatic interpreter transformation called autolocalisation. Autolocalisation makes interpreter registers local to the interpreter loop to keep them in registers. It moreover makes those values available for other routines in the VM runtime automatically when required. We build autolocalization in Slang, Pharo’s VM generator framework, and evaluate the performance of several benchmarks on different configurations localizing IP, SP, FP, and their combinations. We show that localizing critical interpreters yields performance improvements of up to 1.92x on x86-64. Moreover, we show that the performance of our automatic approach is comparable to the previous approach handwritten in the VM while making it easier to read, modify and follow.\",\"PeriodicalId\":245819,\"journal\":{\"name\":\"Companion Proceedings of the 6th International Conference on the Art, Science, and Engineering of Programming\",\"volume\":\"51 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-03-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Companion Proceedings of the 6th International Conference on the Art, Science, and Engineering of Programming\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3532512.3532518\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Companion Proceedings of the 6th International Conference on the Art, Science, and Engineering of Programming","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3532512.3532518","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

语言解释器通常比(JIT)编译实现慢,因为它们以简单性换取性能和可移植性。然而,它们在现代虚拟机(vm)中仍然很重要:例如,并不是所有的代码都是热的,并且会在稍后的编译阶段到达。它们在文献中未被充分研究的特征之一是解释器寄存器的概念:解释器变量对解释器循环的有效执行至关重要。在本文中,我们提出了一种称为自动本地化的自动解释器转换。自动本地化使得解释器寄存器对于解释器循环来说是局部的,从而将它们保存在寄存器中。此外,它还在需要时自动为VM运行时中的其他例程提供这些值。我们在俚语(Pharo的VM生成器框架)中构建了自动本地化,并在不同配置下对IP、SP、FP及其组合进行了性能评估。我们表明,本地化关键解释器在x86-64上的性能提高高达1.92倍。此外,我们表明,我们的自动方法的性能可与之前在VM中手写的方法相媲美,同时使其更易于阅读,修改和遵循。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Interpreter Register Autolocalisation: Improving the Performance of Efficient Interpreters
Language interpreters are generally slower than (JIT) compiled implementation because they trade off simplicity for performance and portability. They are nevertheless still important in modern Virtual Machines (VMs): e.g.,, not all code is hot and arrives at later compilation stages. One of their under-studied features in the literature is the idea of interpreter registers: interpreter variables that are critical to the efficient execution of the interpreter loop. In this paper, we present an automatic interpreter transformation called autolocalisation. Autolocalisation makes interpreter registers local to the interpreter loop to keep them in registers. It moreover makes those values available for other routines in the VM runtime automatically when required. We build autolocalization in Slang, Pharo’s VM generator framework, and evaluate the performance of several benchmarks on different configurations localizing IP, SP, FP, and their combinations. We show that localizing critical interpreters yields performance improvements of up to 1.92x on x86-64. Moreover, we show that the performance of our automatic approach is comparable to the previous approach handwritten in the VM while making it easier to read, modify and follow.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信