2009 LLVM Developers' MeetingTable of ContentsAboutProceedingsState of ClangTutorial: Building backend in 24 hoursPrecise and efficient garbage collection in VMKit with MMTkUnladen Swallow: Python on LLVMReimplementing llvm-gcc as a gcc pluginScalarEvolution and Loop OptimizationObject Code Emission and llvm-mcLLVM on 180k CoresThe Parfait Bug-CheckerOptimizing ActionScript Bytecode using LLVMTargeting XCore resources from LLVMFuture Works in LLVM Register AllocationCoVaC: Compiler Validation by Program Analysis of the Cross-ProductOpenCLSoftBound: Highly Compatible and Complete Spatial Memory Safety for CPLANG: Translating NVIDIA PTX language to LLVM IR MachineAccelerating Ruby with LLVMAttendeesConference Dates: October 2-2, 2009Location: Cupertino, CAEvent Site: https://llvm.org/devmtg/2009-10/AboutSponsored by Apple, Google, Adobe, and Qualcomm IncorporatedThe 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:Active LLVM and Clang developers and users.Anyone interested in using LLVM or Clang.Compiler, programming language, and runtime enthusiasts.Those interested in using compiler technology in novel and interesting ways.ProceedingsThe 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 ClangDoug Gregor (Apple, Inc.), Chris Lattner (Apple, Inc.), Ted Kremenek (Apple, Inc.) [Slides] [Video]Tutorial: Building backend in 24 hoursAnton Korobeynikov (Saint Petersburg State University) [Slides] [Video]A step-by-step tutorial to build a backend.Precise and efficient garbage collection in VMKit with MMTkNicolas 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 LLVMColin 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 pluginDuncan 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 OptimizationDan Gohman (Apple, Inc.) [Slides] [Video]Overview of LLVM's ScalarEvolution framework, its major changes, new capabilities, and supporting infrastructure.Object Code Emission and llvm-mcBruno 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 CoresDavid 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-CheckerCristina 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 LLVMScott 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 LLVMRichard 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 AllocationLang 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-ProductAnna 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.OpenCLNate Begeman (Apple, Inc.) [Slides] [Video]SoftBound: Highly Compatible and Complete Spatial Memory Safety for CSantosh 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 MachineVinod 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 LLVMEvan 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.AttendeesWe had approximately 170 attendees with a wide range of different affiliations.