The LLVM Compiler System
Chris Lattner

Abstract:

LLVM (http://llvm.org) is a suite of carefully designed open source libraries which implement compiler components (like language front-ends, code generators, aggressive optimizers, Just-In-Time compiler support, debug support, link-time optimization, etc). The goal of the LLVM project is to build these components in a way that allows them to be combined together to create familiar tools (like a C compiler), interesting new tools (like an OpenGL JIT compiler) and many other things we haven't thought of yet. Because LLVM is under continuous development, clients of these components naturally benefit from improvements in the libraries.

This talk gives an overview of LLVM's architecture, design and philosophy, and gives a high-level overview of the various components that are available. It then describes implementation details and design points of some example clients—LLVM's GCC-based C/C++/Objective-C compiler, the OpenGL stack in Mac OS/X Leopard, and scripting language compilers—describing some of the novel capabilities that LLVM contributes to these projects.

Published:

"The LLVM Compiler System", Chris Lattner,
2007 Bossa Conference on Open Source, Mobile Internet and Multimedia, Recife, Brazil, March 2007.

Download Presentation: