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! 
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 
-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