<div dir="ltr"><div>Hi, <br></div><div>Didn't see this one coming. This is great and very helpful to keep track of latest development in ORC!!</div><div><br></div><div>Thank You.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 22 Jan 2020 at 04:57, Christian Schafmeister 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:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I appreciate the weekly updates very much - thanks Lang!<div><br></div><div>Everything I know about the ORCV2 JIT I learned from Lang's 2018 LLVM-Dev talk.</div><div>There is sample code scattered throughout the talk that I've watched over and over again to piece together our JIT.</div><div><br></div><div><br></div><div><br></div><div><div><br></div><div>There</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 21, 2020 at 4:16 PM Lang Hames <<a href="mailto:lhames@gmail.com" target="_blank">lhames@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi All,<div><br></div><div>Ok -- sounds like there's enough interest to keep going with these status updates. You can expect update #2 in a couple of days. :)</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Nice idea! - might even be worth spinning up a separate channel on the Discord for the JIT?</blockquote><div><br></div><div>Seems reasonable to me. There has been a lot of JIT discussion in #llvm -- it might be nice to move it to a #jit channel to maximize the signal-to-noise ratio.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">My use case for ORC is an expression-evaluator library I'm working on called JitCat (<a href="http://www.jitcat.org/" target="_blank">www.jitcat.org</a>)...<br></blockquote><div><br></div><div>Sounds very cool! </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I'm for the most part just a lowly user of ORC but I try to contribute here and there when I can. Mostly by nagging about COFF support through bug reports ;-). </blockquote><div><br></div><div> Anything you can contribute (bug reports included) is very welcome. Debugging and development for Windows is *extra* welcome, since I don't have a windows box to develop or test with.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">One thing that will be useful (and was done to some extent with ORCv1) is to expose ORCv2's API via C-compatible bindings such that code from languages other than C++ (Rust for me) can effectively use it, including things such as the equivalent of -march=native and introspection such that the supported SIMD widths can be detected. I'm planning on using ORC to compile shaders for Kazan, the GPU driver that I'm writing for libre-riscv's hybrid cpu/gpu.</blockquote><div><br></div><div></div><div>That's a really good point. And timely: We need an ORCv2 C API before we can kill off ORCv1. We should use <a href="http://llvm.org/PR31103" target="_blank">http://llvm.org/PR31103</a> to track this (hopefully we can finally close it). If you're interested in this work please CC yourself on that bug.</div><div><br></div><div>There are two approaches we can take to C bindings for ORCv2. The first one I'll call "wrap LLJIT", and it's pretty much what it sounds like: We provide an API for initializing an LLJITBuilder, and accessing methods in the resulting LLJIT object. This would provide a similar level of functionality to the ExecutionEngine bindings, and also enable basic lazy compilation. The second approach would be to wrap the lower level APIs (ExecutionSession, MaterializationUnit, etc.) to allow clients to build their own JIT instances in C. These approaches aren't mutually exclusive, and the best way forward is probably to start with the first approach, then add elements from the second over time.</div><div><br></div><div>Any volunteers to work on this? I need to finish the new initializer work before I can tackle this, so I might be a while yet.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">As a starter using LLVM JIT to improve OLAP execution engine performance, I'm very glad to hear that. I can't find some useful document help me get start to use the new ORC JIT API quickly. Only can find some examples how to use it, but don't know the internal from low level, and very blurred to design a clearly JIT toolset.  Hope more tutorials add in and help ORC JIT more easy to adoption. </blockquote><div><br></div><div>Ok. Which tutorials have you been following? If possible, could you write some notes on where you got stuck, or where the design was difficult to follow? That will help us determine where the documentation and tutorials could most benefit from improvement.</div><div><br></div><div>-- Lang.</div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 17, 2020 at 11:35 PM guangnan he <<a href="mailto:gnhe2009@gmail.com" target="_blank">gnhe2009@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi, Lang</div><div>As a starter using LLVM JIT to improve OLAP execution engine performance, I'm very glad to hear that. I can't find some useful document help me get start to use the new ORC JIT API quickly. Only can find some examples how to use it, but don't know the internal from low level, and very blurred to design a clearly JIT toolset.  Hope more tutorials add in and help ORC JIT more easy to adoption. <br></div><div>Big thanks. <br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Jacob Lifshay via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> 于2020年1月17日周五 下午11:38写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div>Thank you for creating weekly updates, they will be quite useful, since previously ORC development seemed rather opaque.<div dir="auto"><br></div><div dir="auto">One thing that will be useful (and was done to some extent with ORCv1) is to expose ORCv2's API via C-compatible bindings such that code from languages other than C++ (Rust for me) can effectively use it, including things such as the equivalent of -march=native and introspection such that the supported SIMD widths can be detected. I'm planning on using ORC to compile shaders for Kazan, the GPU driver that I'm writing for libre-riscv's hybrid cpu/gpu.</div><div dir="auto"><br></div><div dir="auto">Jacob Lifshay</div></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><br clear="all"><br>-- <br><div dir="ltr"><div dir="ltr"><div>Guang-Nan He<br><br></div></div></div>
</blockquote></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div style="font-size:small">Christian Schafmeister</div><div style="font-size:small">Professor, Chemistry Department</div><div style="font-size:small">Temple University</div></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>