LLVM is a great platform for compiler research. It has a simple and easy to understand <a | |
href="docs/LangRef.html">representation</a> and a completely <a href="docs/WritingAnLLVMPass.html"> | |
modular system for adding passes to the compiler</a>. LLVM also provides extensive assertions | |
to pinpoint bugs when they occur, an IR verifier, and <a href="docs/CommandGuide/html/bugpoint.html">tools | |
to automatically identify and narrow down bugs</a> in arbitrary compiler transformations. |