[llvm-dev] OrcV1 removal

Andres Freund via llvm-dev
Fri, 02 Oct 2020 18:12:45 -0000

Hi,

On 2020-10-01 21:16:50 -0700, Lang Hames wrote:
> Ok -- I've added some API for this in 438db0719681: You can get the
string
> pool from the execution session
> with LLVMOrcExecutionSessionGetSymbolStringPool, then clear that
> with LLVMOrcSymbolStringPoolClearDeadEntries.

Great, at least the simple cases don't leak any memory anymore, over a
~10min run.  Can't yet run a longer test, as those would require the
definition generator APIs we discussed elsewhere in this thread.

The error reporting change also works and helps. Need to figure out on
the PG side how to better associate the reported errors with the user
action, but that's quite doable. Might just end up re-setting the error
reporter on a more granular basis, to update the context.


Not directly related to the redisgn of the API: Both for V1 and V2 of
the Orc API I am currently using two "JIT instances"
(LLVMOrcJITStackRef
/ LLVMOrcLLJITRef), because we want to use different LLVMCodeGenLevel*
depending on a cost/benefit analysis. I wonder if there's a chance to do
that on a more granular basis than an entire LLJIT instance at some
point?

Thanks,

Andres Freund