Understanding and writing an LLVM Compiler Backend

From LLVM

Jump to: navigation, search

[edit] Overview

The following is a description and links to a presentation given by Brudo Cordoso Lopes at Embedded Linux Conference 2009.

[edit] Description:

LLVM is a compiler infrastructure aimed at providing aggressive optimizations in the entire life of a program - compile time, link-time (particularly interprocedural), run-time and offline (i.e., after software is installed)). It also provides static back-ends for the X86, X86-64, PowerPC 32/64, ARM, Thumb, IA-64, Alpha, SPARC, MIPS and CellSPU architectures, a back-end which emits portable C code, and a Just-In-Time compiler for X86, X86-64, PowerPC 32/64 processors, and an emitter for MSIL. LLVM is an open source project (with its own license, very close to the MIT license) and is being used by companies such as Apple, AMD, Microchip (which recently contributed an experimental PIC-16 back-end), Sun, and Rapidmind. It can be easily used and compiled under Linux.

The presentation will focus in explaining how LLVM works, with an overall explanation about its many parts, with a more detailed approach in the backend scenario.

Bruno Cardoso Lopes is a PhD student at University of Campinas, Brazil. His academic research includes hardware simulation and code compression. In the past he worked and had experience with embedded systems, with drivers for Linux and FreeBSD. He's also an active contributor to the open source compiler LLVM (Low Level Virtual Machine), where he maintains the MIPS back-end.

[edit] Links to Media

Video

Slides

Personal tools