1.5 Summary
In this chapter, we covered the history of the LLVM project, obtained the source code for LLVM, and explored its internal structure. We learned about the tools used to build LLVM, such as CMake and Ninja. We studied the various configuration options for building LLVM and how they can be used to optimize resources, including disk space. We built Clang and LLDB in debug and release modes and used the resulting tools to compile a basic program and run it with the debugger. We also created a simple Clang tool and ran it with the LLDB debugger.
The next chapter will introduce you to the compiler design architecture and explain how it appears in the context of Clang . We will primarily focus on the Clang frontend, but we will also cover the important concept of the Clang driver – the backbone that manages all stages of the compilation process, from parsing to linking.