[llvm-dev] Outlining in JIT LLVM

David Chisnall via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 16 08:51:08 PST 2017

On 16 Feb 2017, at 16:17, David Blaikie via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> Optimization passes (any transformation to IR except splitting Modules) is performed by the general LLVM optimizations, not by ORC itself.
> LLVM (in either the general optimization libraries, or in ORC) doesn't currently have an outlining pass, as far as I know. I know it's something people talk about doing/wanting, but I don't believe it's been attempted/implemented so far.

The proposed outlining pass happens after lowering to machine instructions, as it’s easier to perform the matching there.  Note; however, that it would be quite difficult to fit this into a JIT compilation flow.  For latency, you typically wish to JIT as little as possible at a time (often single functions), yet for outlining to work well you must have multiple functions that contain duplication.  It’s unclear how these two would compose.


More information about the llvm-dev mailing list