This is great, thank you so much! I don't have mastery over the basics yet.
I have read them and conceptually I understand them but I am afraid I can't
write them on my own. I also appreciate your sharing godbolt.org. That is a
great help. Do you know how I can learn about differences between IRs when
optimizing is turned on vs. when it is not turned on? If there are many
people on this list who might be interested in this topic then we can
remove spamming everyone on this list by including llvm-dev. You guys
decide.
Thanks.
On Sat, Jan 9, 2021 at 4:56 PM Stefanos Baziotis <
stefanos.baziotis at gmail.com> wrote:
> Hi Mihir,
>
> I'm not really sure what would be the best choice given that you
mention
> that you want a source that covers LLVM IR "in depth" while
previously it
> seemed you needed
> a beginner-like source.
>
> If you already know the basics, i.e.,:
> - IR Structure (Module -> Function -> Basic Block -> Instruction)
> - Basic operations (arithmetic, branches, calls, loads/stores, conversions
> all that)
> - Intrinsics / Metadata
> - PHIs
> - GEPs
> - What role types play in general
>
> Bear in mind that when I mention these basics, I don't mean just
knowing
> sort of what they do. I also mean how knowing sort of how can you use them
> as
> building blocks to implement high level operations, e.g., (from simple to
> more complicated):
> - 1 + 2 + 3
> - function calls
> - if-else if-else
> - classes / structs and operations in them
> - virtual functions
>
> Maybe type conversions, pointers etc. anyway you get the point.
>
> If you do have the basics down, _then_ I think is the time to start
> studying in depth. At this point, I don't think a book or any such
source
> would be useful to you. LangRef would be the way to go along
> with writing C++ in godbolt (https://godbolt.org/) and seeing what LLVM
> IR Clang emits (with -emit-llvm and preferably -g0 to avoid debug info as
> cmd args).
>
> But if you don't have the basics down, then you probably don't need
> something in-depth. In this case, I'd start with this video:
> https://www.youtube.com/watch?v=m8G_S5LwlTo,
> writing (simple) C code in godbolt and inspecting the result (eventually
> trying to produce it myself) and maybe I'd watch a compilers course
> (meaning 1-2 lectures covering things
> of interest, not the whole thing and without paying - there is plenty of
> free material from universities online).
>
> I hope this helps. If not, maybe you can try to direct us on what exactly
> is your level.
>
> Best,
> Stefanos
>
> Στις Κυρ, 10 Ιαν 2021 στις 2:39 π.μ., ο/η Mihir Sevak via llvm-dev <
> llvm-dev at lists.llvm.org> έγραψε:
>
>> Ok, thanks for the reply. Lets see what other folks have to say.
>>
>> On Sat, Jan 9, 2021 at 4:37 PM David Blaikie <dblaikie at
gmail.com> wrote:
>>
>>> Yeah, sorry - I haven't read any LLVM books, unfortunately.
Perhaps some
>>> other folks will be able to chime in with tips.
>>>
>>> On Sat, Jan 9, 2021 at 4:36 PM Mihir Sevak <mihir.sevak at
gmail.com>
>>> wrote:
>>>
>>>> I own this book and it doesn't cover IR in depth. I am
trying to write
>>>> an additional feature for C++ frontend and for that I want to
use proper
>>>> Intermediate Representation that doesn't become a laughing
stock so I am
>>>> looking for some in depth explanation on IR. I am aware that it
changes so
>>>> fast that a book will become outdated however for my exercise I
am willing
>>>> to go back to the version the book covers and implement it
there. If you
>>>> have used some book personally and recommend it please share
with me.
>>>>
>>>> Thanks.
>>>>
>>>> On Sat, Jan 9, 2021 at 4:31 PM David Blaikie <dblaikie at
gmail.com>
>>>> wrote:
>>>>
>>>>> Published books probably get out of date pretty quickly, so
you'll
>>>>> need to keep the more up-to-date code/online docs in mind
even if you're
>>>>> reading printed stuff. At a quick google this seems like
the sort of thing
>>>>> that might be useful:
>>>>>
https://www.amazon.com/Getting-Started-LLVM-Core-Libraries/dp/1782166920
>>>>> (googling 'llvm book' shows a few results)
>>>>>
>>>>> On Sat, Jan 9, 2021 at 4:24 PM Mihir Sevak <mihir.sevak
at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Thanks David. Really appreciate this.
>>>>>>
>>>>>> Would you please kindly share those names of the books
so at least I
>>>>>> have an idea about what resources are available and in
case I need more
>>>>>> explanation than this Language Reference Manual ?
>>>>>>
>>>>>> Once again thanks.
>>>>>>
>>>>>> On Sat, Jan 9, 2021 at 3:57 PM David Blaikie
<dblaikie at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> There are some books, but if you're looking for
the best reference
>>>>>>> for LLVM IR it's online here:
https://llvm.org/docs/LangRef.html
>>>>>>>
>>>>>>> On Sat, Jan 9, 2021 at 3:43 PM Mihir Sevak via
llvm-dev <
>>>>>>> llvm-dev at lists.llvm.org> wrote:
>>>>>>>
>>>>>>>> Hello LLVM group,
>>>>>>>> I am very new to this project. I want to
develop a few things
>>>>>>>> on LLVM platform and for that I am wondering
where can I learn about
>>>>>>>> Intermediate Representation used in LLVM
project? Is there any in-depth
>>>>>>>> instruction level guide available except online
tutorials?
>>>>>>>>
>>>>>>>> Please advise.
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>> Have a great weekend.
>>>>>>>>
>>>>>>>> --
>>>>>>>> "How can anything be impossible when
impossible itself says I M
>>>>>>>> Possible???"®
>>>>>>>> Mihir Sevak
>>>>>>>> _______________________________________________
>>>>>>>> LLVM Developers mailing list
>>>>>>>> llvm-dev at lists.llvm.org
>>>>>>>>
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> "How can anything be impossible when impossible
itself says I M
>>>>>> Possible???"®
>>>>>> Mihir Sevak
>>>>>>
>>>>>
>>>>
>>>> --
>>>> "How can anything be impossible when impossible itself
says I M
>>>> Possible???"®
>>>> Mihir Sevak
>>>>
>>>
>>
>> --
>> "How can anything be impossible when impossible itself says I M
>> Possible???"®
>> Mihir Sevak
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
--
"How can anything be impossible when impossible itself says I M
Possible???"®
Mihir Sevak
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20210109/2aca4835/attachment-0001.html>