<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">I was just reading the blog post -- very cool!</div><div dir="ltr"><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>Regarding merging of multiple modules:</div><div><br></div><div><div>"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):</div><div><br></div><div>[ERROR]: LLVM error: Duplicate definition of symbol '??_7success@lest@@6B@'"</div></div><div><br></div><div>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?</div><div><br></div><div>Regards,</div><div>Lang.</div><div><br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 27, 2020 at 11:11 AM David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">+Lang for LLVM Orc things<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 27, 2020 at 3:34 AM Emmanuel Roche via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello LLVM developers!<div><br></div><div>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:</div><div><br></div><div>- Precompiled header handling,</div><div>- Emulated TLS desactivation,</div><div>- Globals construction & destruction,</div><div>- C++ exceptions handling,</div><div>- Multi modules linking,</div><div><br></div><div>=> In case this could be helpful to anyone, you will find this article here: <a href="http://wiki.nervtech.org/doku.php?id=blog:2020:0425_jit_compiler_part5_improvements" target="_blank">http://wiki.nervtech.org/doku.php?id=blog:2020:0425_jit_compiler_part5_improvements</a></div><div><br></div><div>And of course, if you have any questions for me, just let me know.</div><div><br></div><div>Meanwhile, happy hacking everyone ;-)!</div><div><br></div><div>Best regards,</div><div>Manu.</div><div><br></div><div><br></div></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>
</blockquote></div>