2009 LLVM Developers' Meeting

About

Sponsored by Apple, Google, Adobe, and Qualcomm Incorporated

The meeting serves as a forum for both LLVM and Clang developers and users to get acquainted, learn how LLVM is used, and exchange ideas about LLVM and its (potential) applications. More broadly, we believe the event will be of particular interest to the following people:

Proceedings

The day was structured to have general overview/introduction talks about some major LLVM subsystems and talks on applications of LLVM for various specific projects.

This page lists all of the slides and videos for all of the talks of the day. The talks were held in two rooms (in one room we only were able to record a screencast), in the other room we have full video. The mobile versions of the videos are in a generic ‘H.264’ container, and the computer versions are in ‘QuickTime’ format.

State of Clang

Doug Gregor (Apple, Inc.), Chris Lattner (Apple, Inc.), Ted Kremenek (Apple, Inc.) [Slides] [Video]

Tutorial: Building backend in 24 hours

Anton Korobeynikov (Saint Petersburg State University) [Slides] [Video]
A step-by-step tutorial to build a backend.

Precise and efficient garbage collection in VMKit with MMTk

Nicolas Geoffray (Université Pierre et Marie Curie) [Slides] [Video]
Describes how precise garbage collection was added to VMKit using the MMTk library. Covers implementation for both JVM and .NET runtimes, including performance improvements and tutorial-like steps for reuse in other LLVM-based VMs.

Unladen Swallow: Python on LLVM

Colin Winter (Google) [Slides]
An overview of Unladen Swallow, a Google-sponsored LLVM-based branch of CPython, discussing architecture, performance benefits, LLVM integration, and challenges.

Reimplementing llvm-gcc as a gcc plugin

Duncan Sands (Deep Blue Capital) [Slides]
Explores replacing GCC optimizers with LLVM via the GCC plugin mechanism, aiming to replicate llvm-gcc functionality without altering GCC directly.

ScalarEvolution and Loop Optimization

Dan Gohman (Apple, Inc.) [Slides] [Video]
Overview of LLVM's ScalarEvolution framework, its major changes, new capabilities, and supporting infrastructure.

Object Code Emission and llvm-mc

Bruno Cardoso Lopes (University of Campinas) [Slides] [Video]
High-level look at LLVM’s Machine Code Emitter focusing on object file generation, design structure, and current implementation status.

LLVM on 180k Cores

David Greene (Cray) [Slides] [Video]
Details Cray's integration of LLVM into a production compiler, covering encountered challenges, benefits, and contributions to upstream LLVM.

The Parfait Bug-Checker

Cristina Cifuentes (Sun Microsystems) [Slides] [Video]
Parfait is a bug-checking research tool for C built on LLVM, used internally at Sun and externally in the open-source OS community. Discusses design, internals, and demo results.

Optimizing ActionScript Bytecode using LLVM

Scott Petersen (Adobe Systems, Inc.) [Slides] [Video]
Discusses Adobe’s LLVM-based optimizer for ActionScript Bytecode, its current state, and potential for general bytecode optimization using LLVM infrastructure.

Targeting XCore resources from LLVM

Richard Osborne (XMOS) [Slides] [Video]
Shows how LLVM is used to compile a C dialect extended for the XCore’s hardware-threaded architecture with channel-based communication and I/O timing.

Future Works in LLVM Register Allocation

Lang Hames (Apple, Inc.) [Slides] [Video]
Talk on planned and ongoing improvements in LLVM's register allocation framework.

CoVaC: Compiler Validation by Program Analysis of the Cross-Product

Anna Zaks (New York University) [Slides] [Video]
CoVaC is a framework built on LLVM 2.0 that formally verifies compiler optimizations by checking semantic equivalence using a cross-product of program states.

OpenCL

Nate Begeman (Apple, Inc.) [Slides] [Video]

SoftBound: Highly Compatible and Complete Spatial Memory Safety for C

Santosh Nagarakatte (University of Pennsylvania) [Slides] [Video]
SoftBound enforces spatial memory safety for C at compile-time by attaching base and bound metadata to every pointer, with no source code changes required.

PLANG: Translating NVIDIA PTX language to LLVM IR Machine

Vinod Grover (NVIDIA) [Slides] [Video]
PLANG is a frontend for PTX that emits LLVM IR, allowing reuse of LLVM for PTX analysis, optimization, and code generation targeting CPUs.

Accelerating Ruby with LLVM

Evan Phoenix (Engine Yard) [Slides] [Video]
Rubinius is a Ruby VM with JIT compilation using LLVM. This talk explains architecture, background compilation, profiling, and efficient IR generation strategies.

Attendees

We had approximately 170 attendees with a wide range of different affiliations.