[llvm-dev] C++ JIT Compiler with LLVM on Windows 10 - part 5
Lang Hames via llvm-dev
llvm-dev at lists.llvm.org
Mon Apr 27 11:41:24 PDT 2020
I was just reading the blog post -- very cool!
Regarding Globals construction & destruction: There definitely has been a
lot of churn in that area. There will probably be more before LLVM 11 is
released, but I can see light at the end of the tunnel. I think the Right
Way to run initializers in a JITDylib is to treat it as equivalent to a
dlopen operation (with extra allowances for the fact that new initializers
can be added to a JITDylib at runtime). This is what the LLJIT::initialize
method is doing. Now we just need to generalize it to support
out-of-process JITs. That will at least require a new remote-target
abstraction, and an RPC implementation for testing in-tree.
Regarding emulated TLS deactivation: I've never looking into how/whether
this works on Windows. If it doesn't make sense to have it on by default
there we can change the default for Windows targets.
Regarding merging of multiple modules:
"But of course this would not work because as soon as I try to load the
second script, I get a duplicate symbol error from LLVM (and this
completely makes sense):
[ERROR]: LLVM error: Duplicate definition of symbol '??_7success at lest@@6B@'"
I think that anything that llvm-link can merge should, in theory, be safe
to add to the JIT. This actually sounds like a bug. Are you able to share
the full modules that you were merging?
On Mon, Apr 27, 2020 at 11:11 AM David Blaikie <dblaikie at gmail.com> wrote:
> +Lang for LLVM Orc things
> On Mon, Apr 27, 2020 at 3:34 AM Emmanuel Roche via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>> Hello LLVM developers!
>> So, I'm continuing my journey with my toy C++ JIT compiler
>> implementation, and I wrote another article on the issues/solutions I've
>> been working on in the past few days, mainly:
>> - Precompiled header handling,
>> - Emulated TLS desactivation,
>> - Globals construction & destruction,
>> - C++ exceptions handling,
>> - Multi modules linking,
>> => In case this could be helpful to anyone, you will find this article
>> And of course, if you have any questions for me, just let me know.
>> Meanwhile, happy hacking everyone ;-)!
>> Best regards,
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev