LLVM Project News and Details from the Trenches

Friday, December 7, 2012

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. These vectorizers focus on different optimization opportunities and use different techniques. The BB vectorizer merges multiple scalars that are found in the code into vectors while the Loop Vectorizer widens instructions in the original loop to operate on multiple consecutive loop iterations.

Wednesday, December 5, 2012

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. The LLVM Developer Meeting would not be possible without support from our sponsors. Many thanks to Apple, QuIC, Google, and Intel. -Chris

Wednesday, November 28, 2012

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.

What I aim to do here is follow the various incarnations an "instruction" takes when it goes through LLVM’s multiple compilation stages, starting from a syntactic construct in the source language and until being encoded as binary machine code in an output object file.

This article in itself will not teach one how LLVM works. It assumes some existing familiarity with LLVM’s design and code base, and leaves a lot of "obvious" details out. Note that unless otherwise stated, the information here is relevant to LLVM 3.2. LLVM and Clang are fast-moving projects, and future changes may render parts of this article incorrect. If you notice any discrepancies, please let me know and I’ll do my best to fix them.

Tuesday, January 3, 2012

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. If you are interested in the talks, slides and videos are now available.

The Developer Meeting would not be possible without support from our sponsors. Many thanks to QuIC, Apple and Google.

Happy 2012!

-Chris