Thumbnail
Access Restriction
Open

Author Guo, Shu-Yu ♦ Palsberg, Jens
Source CiteSeerX
Content type Text
File Format PDF
Subject Domain (in DDC) Computer science, information & general works ♦ Data processing & computer science
Subject Keyword Trace Optimization ♦ Trace Shu-yu Guo ♦ Optimized Code ♦ Optimization Soundness ♦ Traditional Optimization Technique ♦ Trace Compiler ♦ Imperative Calculus ♦ Traditional Compiler ♦ Trace-based Jit Compiler ♦ Mozilla Firefox ♦ Javascript Engine ♦ Trace-based Just-in-time Compilation ♦ Incomparable Set ♦ Optimization Strategy Differs ♦ Frequently-executed Path ♦ Jit Compiler ♦ Sound Optimization ♦ Run-time Profiling ♦ Original Code
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.
Educational Role Student ♦ Teacher
Age Range above 22 year
Educational Use Research
Education Level UG and PG ♦ Career/Technical Study
Learning Resource Type Article
Publisher Date 2011-01-01