LLVM is a collection of modular compiler and toolchain technologies including a backend, assembly code generator for over 10 CPUs, the LLDB debugger, and the Clang C/C++/Objective-C frontend and static analyzer. It originated in the 2000s and was adopted by Apple in 2011 as it is more modular than GCC, integrates better into IDEs, and was more suitable for improving Objective-C support. Compilation involves transforming source code into a lower level representation like assembly, and LLVM's design with frontend, optimized intermediate representation, and backend makes it easier to add new languages and CPU targets compared to GCC.