I am a grad student looking to get my hands wet contributing to LLVM. I have done an undergrad course in Compilers. I have some knowledge of parsers, code generation, optimization, IR and other topics taught in an undergrad course. I have worked through quite a bit of the dragon book. Is there a guide to get newbie devs up to speed on the process of contributing? Do I just build the project, fix the bugs and build it again? Is there any other workflow?
Also, are there any bugs that have been labelled for newcomers? And what level of knowledge would I need to start contributing to/fixing bugs?
Thanks a lot!
Others might have more insight than I do, but you can start by looking for “beginner” bugs, which include both Clang and LLVM here:
If you are interested in frontend work, there are other open-source projects based on LLVM. Feel free to email me off-list if you are interested in contributing to an open-source Fortran compiler, there might be some interesting work for a newcomer.
I can only second Petr's suggestion of the beginners label at bugs.llvm.org.
Besides that, there is no "New Contributors" page currently, but http://llvm.org/docs/DeveloperPolicy.html contains info about contributing to LLVM and http://llvm.org/docs/Phabricator.html contains info about code reviews via Phabricator.
Also, The LLVM Compiler Infrastructure Project contains some bigger pieces of work to pick up.
Feel free to CC me on any bug or code review you pick up.
Hi Florian, Peter,
Thanks for the prompt replies. I have a few questions though.
What amount of compiler knowledge would be required to pick up one of the bigger pieces of work?
I looked through some of the bugs and I intend to start with one of the Scalar optimization bugs. The ones that start with "Missed optimization in math expression: … ". What do I need to read up on to get to speed on this? I also saw that it is already assigned to someone. So if that person is actively working on it, I’ll pass it up, but if not, then I would like to work on it. It looks like a good way to get familiar with the code base.