[llvm-dev] ORC JIT Weekly #24 -- OrcV1 removed, Removable code, C API improvements, and DefinitionGenerator updates.

Lang Hames via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 19 02:07:13 PDT 2020


Hi All,

It was great to catch so many of you at the LLVM Virtual Developer's
Meeting, and to hear your feedback and questions on the JIT APIs.
Documentation emerged as a popular request, especially design documents and
roadmaps -- I will try to make that a priority over the next few weeks, and
will let you know in these weekly mails when I have something for you to
check out.

In the meantime, there are four big pieces of news this week:

(1) OrcV1 has been removed. All legacy layers and utilities are gone, and
all example and tutorial code has been migrated to OrcV2. [1]

(2) Removable code support has landed. You can now use ResourceTrackers to
manage resources, including freeing JIT memory allocated for modules. [2]

(3) The OrcV2 C API has received a number of updates and bug fixes,
including support for removable code. See [3], [4] (and a number of
adjacent commits).

(4) DefinitionGenerators (and the implementation of symbol lookup) have
received a major overhaul: Generators may now optionally suspend the lookup
while attempting to find a definition, allowing other threads to update JIT
state while they work. (The new lookup scheme also fixes a bug where we
would attempt to generate redundant definitions for hidden symbols). [5]

I especially want to thank Andres Freund for all the testing, feedback and
patches he provided for the C API updates. I'm happy to say that with the
latest updates to the C API Andres was able to get PostgresQL's JIT
up-and-running on OrcV2.

Next up I'll be looking at adding utilities to support for out-of-process
execution. In the meantime if you have any questions or comments on any of
the above (I ran short of time to go into much detail on them in this
email), or any of the topics from the dev meeting -- I'd love to hear from
you.

-- Lang.

[1]
https://github.com/llvm/llvm-project/commit/6154c4115cd4b78d0171892aac21e340e72e32bd
[2]
https://github.com/llvm/llvm-project/commit/0aec49c8531bc5282b095730d34681455826bc2c
[3]
https://github.com/llvm/llvm-project/commit/91d1f417fd89cdbea095f820729df0eb9d465f9f
[4]
https://github.com/llvm/llvm-project/commit/f35707047e216e99052c15b04fe508d075b6121b
[5]
https://github.com/llvm/llvm-project/commit/069919c9ba33666786b80e89f30215ef2918ecdc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201019/8c5a4114/attachment.html>


More information about the llvm-dev mailing list