The LLVM phase is really an alternative to the existing DFG JIT, and more precisely to the final phase thereof: the front of the DFG JIT is still used up to CPS optimisations, then it branches right before codegen: DFG generates its code directly while FTL converts DFG to SSA, applies SSA optimisations, converts to LLVM IR and passes the IR to LLVM for codegen.
Comments
https://www.webkit.org/blog/3362/introducing-the-webkit-ftl-... for those who missed it.
The LLVM phase is really an alternative to the existing DFG JIT, and more precisely to the final phase thereof: the front of the DFG JIT is still used up to CPS optimisations, then it branches right before codegen: DFG generates its code directly while FTL converts DFG to SSA, applies SSA optimisations, converts to LLVM IR and passes the IR to LLVM for codegen.