作者: Rodrigo Sol , Christophe Guillon , Fernando Magno Quintão Pereira , Mariza A. S. Bigonha
DOI: 10.1007/978-3-642-19861-8_2
关键词:
摘要: Trace compilation is a technique used by just-in-time (JIT) compilers such as TraceMonkey, the JavaScript engine in Mozilla Firefox browser. Contrary to traditional JIT machines, trace compiler works on only part of source program, normally linear path inside heavily executed loop. Because compiled during interpretation program has access runtime values. This observation gives possibility producing binary code specialized these In this paper we explore opportunity provide an analysis that removes unnecessary overflow tests from programs. Our optimization uses range show some operations cannot produce overflows. The size and space number instructions present input trace, it more effective than analyses, because have values known at execution time. We implemented our top Firefox's tested over 1000 scripts several industrial strength benchmarks, including 100 most visited webpages Alexa index. generate binaries either x86 or embedded microprocessor ST40-300. On average, eliminate 91.82% overflows programs TraceMonkey test suite. provides average reduction 8.83% ST40 6.63% x86. increases TraceMonkey's 2.53%.