Affiliation:
1. University of California, Los Angeles, Los Angeles, CA, USA
Abstract
The technique of trace-based just-in-time compilation was introduced by Bala et al. and was further developed by Gal et al. It currently enjoys success in Mozilla Firefox's JavaScript engine. A trace-based JIT compiler leverages run-time profiling to optimize frequently-executed paths while enabling the optimized code to ``bail out'' to the original code when the path has been invalidated. This optimization strategy differs from those of other JIT compilers and opens the question of
which trace optimizations are sound
. In this paper we present a framework for reasoning about the soundness of trace optimizations, and we show that some traditional optimization techniques are sound when used in a trace compiler while others are unsound. The converse is also true: some trace optimizations are sound when used in a traditional compiler while others are unsound. So, traditional and trace optimizations form incomparable sets. Our setting is an imperative calculus for which tracing is explicitly spelled out in the semantics. We define optimization soundness via a notion of bisimulation, and we show that sound optimizations lead to confluence and determinacy of stores.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A flexible framework for studying trace-based just-in-time compilation;Computer Languages, Systems & Structures;2018-01
2. A formal foundation for trace-based JIT compilers;Proceedings of the 13th International Workshop on Dynamic Analysis;2015-10-26
3. Just-in-time value specialization;Computer Languages, Systems & Structures;2014-07
4. Tracing compilation by abstract interpretation;Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages;2014-01-08
5. Swift;ACM SIGPLAN Notices;2012-09-05