where to start?

Hi All,

I am an experienced compiler engineer, I want to get involved in LLVM but don’t know where I should start with. Can someone give any suggestion for my situation? I hope can do some easy work at beginning, then do some challenge work when I am familiar and comfortable with LLVM. I am interested in optimizations and code generations, but I am open to other areas either.

Any suggestion is welcome, thanks in advance.

Regards,
Baosan

Hi Baoshan,

Firstly, welcome! :wink:

This is a good place to start: http://llvm.org/OpenProjects.html

It might be a bit out-of-date, but you can always ask on the list about a particular project.

To get acquainted with the code base, I suggest reading at least:

http://llvm.org/docs/GettingStarted.html

http://llvm.org/docs/LangRef.html

http://llvm.org/docs/ProgrammersManual.html

http://llvm.org/docs/CodingStandards.html

Happy hacking!

cheers,
–renato

Hi Rento,

Thanks for your suggestion, it really helpful, I will go through the links you have given.
And if you have any ‘dirty’ work at hand and want someone to help you to do, please let me know, I would be happy to put my hands on.

Thanks,
Baoshan

Another good place to look are the README files in various
directories, e.g. lib/Target/X86/README.txt and friends, these usually
contain "someone should fix this some day" sorts of projects. The bug
list is also a reasonable place to start - if lacking in direction or
difficulty level. If you have any questions don't hesitate to ask on
the list though :slight_smile:

-eric

Finally, grep for FIXME on the sources and you will find plenty of things
to do. I think they are a great way to learn about the surroundings of a
piece of code, and to discuss better approaches to the problem.

cheers,
--renato

From: "Baoshan Pang" <pangbw@gmail.com>
To: llvmdev@cs.uiuc.edu
Sent: Friday, January 31, 2014 8:15:26 AM
Subject: [LLVMdev] where to start?

Hi All,

I am an experienced compiler engineer, I want to get involved in LLVM
but don't know where I should start with. Can someone give any
suggestion for my situation? I hope can do some easy work at
beginning, then do some challenge work when I am familiar and
comfortable with LLVM. I am interested in optimizations and code
generations, but I am open to other areas either.

Any suggestion is welcome, thanks in advance.

My personal recommendation for getting started is this: find some applications or benchmarks that you feel like playing with: compile them with various compilers and fine some on which Clang/LLVM performs poorly; then figure out why. File bug reports and then start figuring out what parts of the compiler may need improvement. Running clang with -mllvm -print-after-all is often enlightning.

One area in which we really need some work is quantifying how various optimizations affect the performance of multithreaded applications. There was some discussion of this issue here (http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-November/067998.html), as an example, but we really need a lot more effort in this area.

-Hal