LLVM has extensive documentation
describing the high-level aspects of the compiler system in good
detail. LLVM also includes doxygen and CVSWeb documentation for the
low-level aspects and individual API references.
LLVM is one of the best-documented compilers available.