[llvm-dev] Inlining with the ORC JIT

Gaetano Checinski via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 20 11:14:24 PST 2017


As far as i know, optimizations can only be done on a module level.
If you compile and pass modules to the object-linking-layer, you won't be
able to perform any optimizations.
Thus, what you could do is:
- merge the generated modules into a big monolithic module
- repeatedly perform optimization passes eg. inlining
- copy new functions into a new module ( so you don't re-compile and
re-link the same functions)
- compile and link new module



2017-02-20 17:44 GMT+00:00 Christian Schafmeister via llvm-dev <
llvm-dev at lists.llvm.org>:

> Is it possible to inline functions compiled from C++ code into generated
> code that is fed, Module by Module, into the ORC JIT?
>
> I'd like to add a Module compiled from C++ code into the JIT and then as I
> add later modules, functions from the first module are inlined in the later
> ones.
>
> I already do this for file compilation/linking in my Common Lisp compiler
> “Clasp” (github.com/drmeister/clasp
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__github.com_drmeister_clasp&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=sSykZW5nIEBIoQEQoyEQF3iTvIwIffdEAf9FkbyVYz0&s=ao0EQZ_k7esDdMap8YjoO52BiKyMRHBv7PG4XJdrBOc&e=>
> ).
>
> I have followed the new ORC Kaleidoscope demo and set up the ORC layers to
> do optimization and compilation but the examples are all for function
> optimization and do not describe inlining.
>
> Christian Schafmeister
> Professor, Chemistry Department
> Temple University
> meister at temple.edu
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170220/1a5ffecf/attachment.html>


More information about the llvm-dev mailing list