WebKit spools up FTL, seeks to make JavaScript even faster

WebKit, the open source rendering engine that powers Apple's Safari and is the basis of most mobile browsers today, is looking to once again escalate its level of JavaScript performance. Dubbed FTL — not "faster than light" but "fourth tier LLVM" — it's now spooled up and ready jump onto OS X and iOS. Filip Pizlo expounds in glorious, deeply nerdy fashion on the Surfing Safari blog:

As we worked to improve WebKit's optimizing compiler, we found that we were increasingly duplicating logic that would already be found in traditional ahead-of-time (AOT) compilers. Rather than continue replicating decades of compiler know-how, we instead investigated unifying WebKit's compiler infrastructure with LLVM – an existing low-level compiler infrastructure. As of r167958, this project is no longer an investigation. I'm happy to report that our LLVM-based just-in-time (JIT) compiler, dubbed the FTL – short for Fourth Tier LLVM – has been enabled by default on the Mac and iOS ports.

This post summarizes the FTL engineering that was undertaken over the past year. It first reviews how WebKit's JIT compilers worked prior to the FTL. Then it describes the FTL architecture along with how we solved some of the fundamental challenges of using LLVM as a dynamic language JIT. Finally, this post shows how the FTL enables a couple of JavaScript-specific optimizations.

If into high order browser bits, check out the full post and the WebKit nightly builds. If you're not, just know that once again JavaScript heavy sites — think social networks like Facebook, web apps like iWork, etc. — will eventually be hitting light-speed.

And if you're a total web geek let me know — what do you think of FTL?