> Profile-driven compilation implies that we might invoke an optimizing
> compiler while the function is running and we may want to transfer the
> function’s execution into optimized code in the middle of a loop; to our
> knowledge the FTL is the first compiler to do on-stack-replacement for
> hot-loop transfer into LLVM-compiled code.
Reading this practically made my hair stand on end, it is one hell of a technical feat, considering especially they had no ability to pre-plan so that both LLVM and their previous engine would maintain identical stack layouts in their designs. It's really insane they got this to work at all.I was reminded of the old story about a search engine that tried to supplant JS with a Java bytecode-clone because at the time it was widely believed Javascript had reached its evolutionary limit. How times change!