The LLVM Project Blog

LLVM Project News and Details from the Trenches

  • Status of the C++11 Migrator

    Since the design document for cpp11-migrate, the C++11 migrator tool, was first proposed in early December 2012 development has been making steady progress. In this article I'll talk about what's been implemented in cpp11-migrate so far, what's coming up, and how you can get involved.

    Read more…
  • Static analysis tools: using Clang in CppDepend

    Static analysis is a method of computer program debugging that is done by examining the code without executing the program. The process provides an understanding of the code structure, can help to ensure that the code adheres to industry standards, and can find bugs not easy to detect.

    Read more…
  • LLVM Recipient of the 2012 ACM System Software Award

    The ACM just announced that the LLVM project is the recipient of the 2012 ACM System Software Award. This award recognizes a "software system that has had a lasting influence, reflected in contributions to concepts, in commercial acceptance, or both.

    Read more…
  • LLVM Debian/Ubuntu nightly packages

    In order to facilitate testing and to improve the deployment of the LLVM toolchain, we are happy to publish LLVM Debian/Ubuntu nightly packages. Read on for information about how it works and what we're building.

    Read more…
  • Testing libc++ with -fsanitize=undefined

    [This article is re-posted in a slightly expanded form from Marshall's blog] After my last article, Testing libc++ with Address Sanitizer, I thought "what other tests can I run?" Address Sanitizer (ASan) is not the only "

    Read more…
  • Testing libc++ with Address Sanitizer

    [This article is re-posted in a slightly expanded form from Marshall's blog] I've been running the libc++ tests off and on for a while. It's a quite extensive test suite, but I wondered if there were any bugs that the test suite was not uncovering.

    Read more…
  • Instruction Relationship Framework in LLVM

    The article provides an overview of the new Relationship framework of TableGen. This TableGen feature is used to describe user defined relationships between instructions. It was added to LLVM in October 2012.

    Read more…
  • New Loop Vectorizer

    I would like to give a brief update regarding the development of the Loop Vectorizer. LLVM now has two vectorizers: The Loop Vectorizer, which operates on Loops, and the Basic Block Vectorizer, which optimizes straight-line code.

    Read more…
  • LLVM Developer Meeting 2012

    The 2012 LLVM Developer Meeting is now complete and was a great success. If you are interested in the talks, a complete set of slides, videos, and posters are now available.

    Read more…
  • Life of an instruction in LLVM

    LLVM is a complex piece of software. There are several paths one may take on the quest of understanding how it works, none of which is simple. I recently had to dig in some areas of LLVM I was not previously familiar with, and this article is one of the outcomes of this quest.

    Read more…