LLVM Compiler Overview
The LLVM compiler is the next-generation compiler, introduced in Xcode 3.2 for Snow Leopard, based on the open source LLVM.org project. The LLVM.org project employs a unique approach of building compiler technologies as a set of libraries. Capable of working together or independently, these libraries enable rapid innovation and the ability to attack problems never before solved by compilers. Multiple technology groups within Apple are active contributors within the LLVM.org community, and they use LLVM technology to make Apple platforms faster and more secure.
In Xcode, the LLVM compiler uses the Clang front end (a C-based languages project on LLVM.org) to parse source code and turn it into an interim format. Then the LLVM code generation layer (back end) turns that interim format into final machine code. Xcode also includes the LLVM GCC compiler, which uses the GCC compiler front end for maximum compatibility, and the LLVM back end, which takes advantage of LLVM's advanced code generator. This shows the flexibility of a library-based approach to compiler development. There are many other features, such as link-time optimization, more detailed diagnostic information, and even static analysis, that are made available to Xcode due to the adoption of LLVM.
Watch the videos listed on this page to gain a detailed introduction to LLVM technology. The following videos were taken at the 2011 LLVM Developers' Meeting:
LLVM MC in Practice
Register Allocation in LLVM 3.0
These videos were captured at the 2010 LLVM Developers' Meeting:
The LLVM Assembler and Machine Code Infrastructure
The LLDB Modular Debugging Infrastructure
libclang: Thinking Beyond the Compiler
libc++: A Standard Library for C++0x
These videos were captured at the 2009 LLVM Developers' Meeting:
State of Clang
Future Works in LLVM Register Allocation
ScalarEvolution and Optimization in LLVM
OpenCL and LLVM
Additional resources about LLVM technologies are available at the home page for the LLVM.org project.