[cfe-users] [cfe-dev] Clang - Requesting Help

Praveen Velliengiri via cfe-users cfe-users at lists.llvm.org
Thu Aug 9 21:10:32 PDT 2018

Thanks for sharing the insights and your experience with me, It will be
very helpful to me to get started with minimal knowledge of clang AST :)
Thank you very much, David

On Thu, 9 Aug 2018 at 23:50, David Blaikie <dblaikie at gmail.com> wrote:

> If you're looking to contribute to Clang & have a particular interest in
> the AST, etc - the way I started was to look at simple/small bugs in
> diagnostics - either false positives (a diagnostic (often a warning)
> produced when it shouldn't be (wehn it doesn't tell the user something
> actionable/buggy)) or false negatives (missed opportunity to warn a user
> about something important).
> The way I'd do this without knowing much about Clang's code at all is to
> take the buggy test case and a similar non-buggy example - run clang
> compiling the examples in a debugger in parallel (one debugger running the
> buggy case, one debugger running the non-buggy case) to compare the
> behavior to try to find what the important difference is - and maybe
> somewhere near where the behavior/logic diverges, try to fix the bug.
> Then send the fix for review, or start an email discussion (responding to
> the bug is usually not too effective because bug update email doesn't go to
> many people - only those subscribed to the bug) with what you've found and
> maybe someone with more knowledge can use that information you've provided
> to point you in the right direction to a fix or other questions you can
> research/answer to help.
> On Wed, Aug 8, 2018 at 12:12 PM Praveen Velliengiri via cfe-users <
> cfe-users at lists.llvm.org> wrote:
>> Thanks for your reply, I know the overview of how modern compilers work,
>> but I don't know about the internal details such as working and
>> interactions of various optimization passes. And I didn't have experience
>> with non-uniform trees before.
>> Things I have done so far:
>> 1)  I tried to dump the clang ast for my toy programs to understand the
>> AST in small scale.
>> 2) I have watched some of the talks about clang ast, mostly it sounds
>> difficult to get started.
>> I'm looking for contributing with some open source projects and to
>> improve clang in future if I can.
>> Thank you very much
>> On Aug 8, 2018 11:50 PM, "mats petersson" <mats at planetcatfish.com> wrote:
>>> I'm not sure I can offer much direct help, but I think it may help if
>>> you explain more precisely what it is you're struggling with?
>>> - Do you (not) understand the overall concept of how (modern) compilers
>>> work?
>>> - Do you have some experience in working with tree-data structures in
>>> general? And specifically non-uniform trees (nodes have many different
>>> types of nodes in AST)
>>> None of the above are entirely trivial, and it will take some effort to
>>> learn these things.
>>> If you have a specific task in mind, perhaps describing what you have
>>> done so far (in form of code or words, whichever you think is the best way
>>> to describe it), and a more precise description of what you're struggling
>>> with.
>>> I've not done much work on Clang AST myself, I've built my own compiler
>>> generating code through LLVM - my compiler has it's own form of AST nodes.
>>> I found the Kaleidoscope example good for learning "how to build your own
>>> compiler".
>>> https://llvm.org/docs/tutorial/LangImpl03.html
>>> If you haven't done so yet, and you have enough time to spend a few
>>> weeks on [probably full time days], I would definitely recommend starting
>>> to write your own compiler on top of LLVM - use (a subset of) an existing
>>> compiled language that you already know at least reasonably well, and start
>>> with the very basics - even building a trivial programmable calculator
>>> would be a learning experience if you haven't done that before.
>>> Good luck.
>>> --
>>> Mats
>>> On 8 August 2018 at 18:59, Praveen Velliengiri via cfe-dev <
>>> cfe-dev at lists.llvm.org> wrote:
>>>> Hello all,
>>>> I'm new to compilers and LLVM technologies, I find LLVM and related
>>>> tools fascinating. Initially, I started to understand and work on Clang
>>>> AST. As a beginner, I find it difficult to understand the docs, source code
>>>> for clang AST. Could anyone please guide or help me to get started and work
>>>> with clang AST? More specifically I'm looking for the Prerequisites to
>>>> understand clang AST, some beginner level open source projects which use
>>>> clang AST, some blogs or articles. I would also appreciate if you guys
>>>> share your experience in understanding clang and it's related tooling and
>>>> about your work-flow, it will be a great help for me :)
>>>> In short, "What advice you will give to a student, to understand and
>>>> work with Clang and it's related projects"?
>>>> Thank you very much
>>>> _______________________________________________
>>>> cfe-dev mailing list
>>>> cfe-dev at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>> _______________________________________________
>> cfe-users mailing list
>> cfe-users at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20180810/b177d066/attachment.html>

More information about the cfe-users mailing list