WebKit's FTL JavaScript Engine Shows Off Potential For LLVM

Written by Michael Larabel in LLVM on 17 July 2014 at 09:42 AM EDT. Add A Comment
LLVM
Earlier this year we wrote about Apple working on an LLVM-based JIT compiler for WebKit. This new JIT engine, called "Fourth Tier LLVM" (FTL), is enabled within the latest open-source code for this browser rendering engine and is faster than WebKit's earlier JavaScript implementations.

The WebKit "Fourth Tier LLVM" JavaScript JIT back-end is higher-performing and able to take advantage of new optimization approaches compared to their older back-ends. For those wishing to learn more about it, on the LLVM blog is a new post today about FTL: WebKit’s LLVM based JIT.

Andrew Trick, who wrote the post, said, "This achievement [of enabling the LLVM-based back-end in WebKit] also represents a significant milestone for the LLVM community. FTL makes it clear that LLVM can be used to accelerate a dynamically type checked languages in a competitive production environment. This in itself is a tremendous success story and shows the advantage of the highly modular and flexible design of LLVM. It is the first time that the LLVM infrastructure has supported self-modifying code, and the first time profile guided information has been used inside the LLVM JIT. Even though this project pioneered new territory for LLVM, it was in no way an academic exercise. To be successful, FTL must perform at least as well as non-FTL JavaScript engines in use today across a range of workloads without compromising reliability."

Trick went on to describe at length some of their optimizations and implementation details for their FTL back-end. He concluded with, "WebKit's FTL JIT already shows considerable value in improving JavaScript performance, demonstrating LLVM's remarkable success as a backend for a JavaScript JIT compiler. The FTL project highlights the value of further improving LLVM's JIT infrastructure and reveals several exciting opportunities: improved efficiency of optimization passes and codegen, optimizations targeted toward common idioms present in high level language, enabling more aggressive standard optimizations like vectorization, and extending and formalizing patch point intrinsics. Realizing these goals will require the continued support of the LLVM community and will advance and improve the LLVM project as a whole."
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week