The LLVM Project Blog

LLVM Project News and Details from the Trenches

  • LLVM Developer Meeting 2011

    The 2011 LLVM Devloper Meeting has come and gone, and it was a great event. It featured 17 great talks, several BOF sessions, a poster session, and lots of informal discussions between all sorts of people interested in LLVM and its subprojects.

    Read more…
  • NVIDIA CUDA 4.1 Compiler Now Built on LLVM

    From the NVIDIA CUDA compiler team: CUDA is a parallel programming model and platform created by NVIDIA for harnessing the power of hundreds of cores in modern graphics processing units (GPUs).

    Read more…
  • LLVM 3.1 vector changes

    Intel uses the Low-Level Virtual Machine (LLVM) in a number of products, including the Intel® OpenCL SDK. The SDK's implicit vectorization module generates LLVM-IR (intermediate representation) which uses vector types.

    Read more…
  • LLVM 3.0 Exception Handling Redesign

    One of the biggest IR changes in the LLVM 3.0 release is a redesign and reimplementation of the LLVM IR exception handling model. The old model, while it worked for most cases, fell over in some key situations, leading to obscure miscompilations, missed optimizations, and poor compile time.

    Read more…
  • LLVM 3.0 Type System Rewrite

    One of the most pervasive IR (and thus compiler API) changes in LLVM 3.0 was a complete reimplementation of the LLVM IR type system. This change was long overdue (the original type system lasted from LLVM 1.

    Read more…
  • Greedy Register Allocation in LLVM 3.0

    LLVM has two new register allocators: Basic and Greedy. When LLVM 3.0 is released, the default optimizing register allocator will no longer be linear scan, but the new greedy register allocator.

    Read more…
  • LLVM @ "The Architecture of Open Source Applications"

    LLVM is featured in a chapter of the new book The Architecture of Open Source Applications. This chapter talks about the high-level design of LLVM, and how it differs from other contemporary compilers and JITs out there, why you might want to use it (if you're looking for compiler libraries), a simple example of writing an optimization, how the code is structured, a 10,000 foot view of how the code generator works, and some of the interesting capabilities LLVM has due to its design.

    Read more…
  • C++ at Google: Here Be Dragons

    Google has one of the largest monolithic C++ codebases in the world. We have thousands of engineers working on millions of lines of C++ code every day. To help keep the entire thing running and all these engineers fast and productive we have had to build some unique C++ tools, centering around the Clang C++ compiler.

    Read more…
  • What Every C Programmer Should Know About Undefined Behavior #3/3

    In Part 1 of the series, we took a look at undefined behavior in C and showed some cases where it allows C to be more performant than "safe" languages.

    Read more…
  • What Every C Programmer Should Know About Undefined Behavior #2/3

    In Part 1 of our series, we discussed what undefined behavior is, and how it allows C and C++ compilers to produce higher performance applications than "safe" languages. This post talks about how "

    Read more…