<div dir="ltr"><div>Sounds good - bonus points if these examples were motivated with a continuation to the Kaleidoscope tutorial - Eric Christopher and I did a tutorial on debug info back in 2014 and included new chapters for Kaleidoscope for future usage.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Oct 24, 2019 at 4:47 PM Florian Hahn via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">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">Hi,<br>
<br>
I’d like to propose adding a new example directory (llvm/examples/IRTransforms) as a new home for example code used by various tutorials. After talking to a few people at the Developers meeting, it became clear to me that it would be valuable to have the code examples for various tutorials in-tree to keep them from bit-rotting and make it very easy to build them.<br>
<br>
I’d suggest adding new IR pass examples to llvm/examples/IRTransforms. The passes in that directory will be built as an ExamplesIRTransforms library, which exposes initializeExampleIRTransforms to initialise the passes. Additionally, if LLVM_BUILD_EXAMPLES=On, we add a  -DBUILD_EXAMPLES define, which is then used in opt to make the example passes available if LLVM_BUILD_EXAMPLES=On. I think that allows for relatively friction-less integration of the example passes into `opt`.<br>
<br>
I’ve put up a patch doing exactly that: <a href="https://reviews.llvm.org/D69416" rel="noreferrer" target="_blank">https://reviews.llvm.org/D69416</a> and added a few reviewers, but please join in if you have any thoughts!<br>
<br>
Please let me know if you have any concerns or suggestions to improve the CMake setup & co.<br>
<br>
<br>
As initial example, it contains the code we used for the IR transformations in the 'Getting Started With LLVM: Basics’ tutorial.<br>
<br>
I think there were other tutorials with examples that would be great to have there, like 'Writing Loop Optimizations in LLVM’.<br>
<br>
As a second step, to make those examples even more valuable, it would be great to provide an accompanying text version of the tutorials. But I would suggest we start with adding the code, which we already have.<br>
<br>
Cheers,<br>
Florian<br>
_______________________________________________<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></div>