Sampling optimized code for type feedback

Sampling optimized code for type feedback
复制标题

为类型反馈采样优化代码

DOI:
10.1145/3426422.3426984
复制
发表时间:
2020
期刊:
Proceedings of the 16th ACM SIGPLAN International Symposium on Dynamic Languages
影响因子:
--
通讯作者:
Vitek, Jan
Vitek, Jan
中科院分区:
--
文献类型:
--
作者:
Flückiger, Olivier;Wälchli, Andreas;Krynski, Sebastián;Vitek, Jan

文献摘要

参考文献

被引文献

相似文献

为了有效地执行动态类型语言,许多语言实现都采用了两层体系结构。第一层的目标是低延迟启动时间,并收集动态配置文件,例如变量的动态类型。第二层使用优化编译器提供高吞吐量,该编译器将代码专门化为记录的类型信息。如果程序行为改变到在专用代码中出现以前未看到的类型,则该专用代码变为无效,它被去优化,并且控制被转移回第一层执行引擎,该第一层执行引擎将重新开始专用化。但是,如果程序行为变得更加具体,例如,如果多态变量变得单态,则不会发生任何变化。一旦程序运行优化的代码,有没有办法注意到,优化的机会已经错过了。我们建议采用基于采样的分析器来监控本地代码没有任何仪器。没有检测意味着当探查器不活动时,不会产生开销。我们提出了一个实现的上下文中的借记即时,优化编译器的R语言。基于采样的配置文件,我们能够检测出Debit生成的本机代码何时专门用于陈旧的类型反馈,并将其重新编译为更特定于类型的代码。我们表明,采样增加了不到3的开销
To efficiently execute dynamically typed languages, many language implementations have adopted a two-tier architecture. The first tier aims for low-latency startup times and collects dynamic profiles, such as the dynamic types of variables. The second tier provides high-throughput using an optimizing compiler that specializes code to the recorded type information. If the program behavior changes to the point that not previously seen types occur in specialized code, that specialized code becomes invalid, it is deoptimized, and control is transferred back to the first tier execution engine which will start specializing anew. However, if the program behavior becomes more specific, for instance, if a polymorphic variable becomes monomorphic, nothing changes. Once the program is running optimized code, there are no means to notice that an opportunity for optimization has been missed.We propose to employ a sampling-based profiler to monitor native code without any instrumentation. The absence of instrumentation means that when the profiler is not active, no overhead is incurred. We present an implementation is in the context of the Ř just-in-time, optimizing compiler for the R language. Based on the sampled profiles, we are able to detect when the native code produced by Ř is specialized for stale type feedback and recompile it to more type-specific code. We show that sampling adds an overhead of less than 3
DOI: 10.1145/3133876
发表时间: 2016-02
影响因子: --
作者:
Edd Barrett;Carl Friedrich Bolz-Tereick;Rebecca Killick;S. Mount;L. Tratt
通讯作者: Edd Barrett;Carl Friedrich Bolz-Tereick;Rebecca Killick;S. Mount;L. Tratt
动态语言基于跟踪的即时类型专业化
DOI: 10.1145/1542476.1542528
发表时间: 2009
影响因子: 19
作者:
A. Gal;Brendan Eich;Mike Shaver;David Anderson;David Mandelin;M. Haghighat;Blake Kaplan;Graydon Hoare;B. Zbarsky;Jason Orendorff;J. Ruderman;Edwin W. Smith;Rick Reitmaier;Michael Bebenita;Mason Chang;M. Franz
通讯作者: M. Franz
R 融化大脑:一流环境和懒惰有效论证的 IR
DOI: 10.1145/3359619.3359744
发表时间: 2019
期刊: Proceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages
影响因子: --
作者:
O. Flückiger;Guido Chari;Jan Jecmen;Ming;Jakob Hain;J. Vitek
通讯作者: J. Vitek
捍卫和塑造欧洲:维谢格拉德集团的经验
DOI: 10.21272/sec.2(2).13-18.2018
发表时间: 2018
期刊: SocioEconomic Challenges
影响因子: --
作者:
A. Trifu
通讯作者: A. Trifu
通过运行时类型反馈优化动态分派的调用
DOI: 10.1145/178243.178478
发表时间: 1994
期刊: SocioEconomic Challenges
影响因子: --
作者:
Urs Hölzle;D. Ungar
通讯作者: D. Ungar