<div dir="ltr"><div><div><div><div>I found the Kaleidoscope example a rather good way to learn what I needed (I basically started writing a compiler using the example of Kaleidoscope, and then extended and added more code to eventually have a complete Pascal compiler). Once you get far enough into the project, you can usually formulate a clear & concise enough question for this mailing list or the LLVM chat to get a good answer. And learn "when in doubt, alloca" ;)<br><br></div>However, LLVM is a VERY large set of code, and to understand all of it, and the subtle differences between variants ("When is a ConstantValue not a compile-time constant?") that initially appear to be "the same", in some cases, is really not easy. And I'm not sure there is any good answer to "how to do that". <br><br>I wouldn't even begin to suggest that I actually know ALL of LLVM, 
certainly not in great detail for everything - there's a lot to do with 
Target and binary files that I've completely ignored besides 
"copy/modify from the relevant clang sources".<br><br></div>Obviously, if you are not planning to write your own compiler (or work on someone else's compiler project), then perhaps starting at Kaleidoscope is not necessarily the right way. If you explain what it is you're trying to achieve (assuming it's not writing a compiler), perhaps someone has a good suggestion...<br><br></div>--<br></div>Mats<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 12 June 2017 at 06:49, Dipanjan Das via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div>I haven't spent any "formal" effort to learn LLVM so far, trying to learn by example. However, the downside is, I struggle with comprehending the semantics of the abstraction provided by several LLVM classes often times. The documentation is miserable. Do you have any suggestion for me to lower the learning threshold? Do seasoned LLVM programmers have faced such problems in early days, or is it the lack of systematic reading that's troubling me?<span class="HOEnZb"><font color="#888888"><br clear="all"><div><br></div>-- <br><div class="m_2589239700434793678gmail_signature"><div dir="ltr"><span><div><div dir="ltr"><p>Thanks & Regards,</p>
<div>Dipanjan</div></div></div></span></div></div>
</font></span></div>
<br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>