Firefox 18 Beta Brings The IonMonkey Engine
Mozilla's Firefox 18 Beta web-browser released on Monday. New to this development release that's coming just one week after Firefox 17 is integrating the new IonMonkey JavaScript engine.
Mozilla's IonMonkey JavaScript engine is a Just-In-Time (JIT) compiler that provides a new compiler that is more organized and has explicit data structures of advanced compilers. IonMonkey also lays down work for further optimizations and experimentation.
IonMonkey works by translating the JavaScript code into an intermediate representation (IR), running various algorithms on the generated IR for carrying out optimizations, and then translating the optimized IR into machine code for execution. The current optimized machine code back-ends include support for ARMv7, x86, and x86_64. This is a much cleaner model is similar in nature to LLVM while Mozilla's current JägerMonkey and former TraceMonkey engines didn't go through this IR layer.
Among the current IonMonkey optimization passes on the IR are for dead code elimination, range analysis, a register allocation scheme similar to the HotSpot JVM, redundant code elimination, and the moving of instructions outside of loops where possible.
Benchmarks already of this new Firefox 18 Beta show its JavaScript to be much faster than Firefox 17 and its predecessors. More IonMonkey details are available from the Mozilla Wiki.
Other Firefox 18 Beta features include early WebRTC support, a built-in PDF viewer, performance improvements, CSS3 Flexbox support, support for @supports, W3C touch events, and much more.
The Firefox 18 Beta for all major platforms is available from Mozilla.org.
Mozilla's IonMonkey JavaScript engine is a Just-In-Time (JIT) compiler that provides a new compiler that is more organized and has explicit data structures of advanced compilers. IonMonkey also lays down work for further optimizations and experimentation.
IonMonkey works by translating the JavaScript code into an intermediate representation (IR), running various algorithms on the generated IR for carrying out optimizations, and then translating the optimized IR into machine code for execution. The current optimized machine code back-ends include support for ARMv7, x86, and x86_64. This is a much cleaner model is similar in nature to LLVM while Mozilla's current JägerMonkey and former TraceMonkey engines didn't go through this IR layer.
Among the current IonMonkey optimization passes on the IR are for dead code elimination, range analysis, a register allocation scheme similar to the HotSpot JVM, redundant code elimination, and the moving of instructions outside of loops where possible.
Benchmarks already of this new Firefox 18 Beta show its JavaScript to be much faster than Firefox 17 and its predecessors. More IonMonkey details are available from the Mozilla Wiki.
Other Firefox 18 Beta features include early WebRTC support, a built-in PDF viewer, performance improvements, CSS3 Flexbox support, support for @supports, W3C touch events, and much more.
The Firefox 18 Beta for all major platforms is available from Mozilla.org.
10 Comments