I’m working on developing a Speculative compilation support in LLVM ORC JIT Infrastructure.
As LLVM ORC supports compiling in multiple backend threads, it would be effective if we compile the functions speculatively before they are called by the executing function. So when we request JIT to compile a function, JIT will immediately returns the function address for raw executable bits. This will greatly reduce the JIT latencies in modern multi-core machines. And also I’m working on designing a ORC in-place dynamic profiling support, by this JIT will automatically able to identify the hot functions, and compile it in higher optimization level to achieve good performance.
I’m proposing this project for GSoC 2019 under LLVM . It would be helpful to know how this new features are effective to Julia community, so that I include your comments in “View from Clients” proposal section.