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.