Note, this was last updated: Feb 21, 2008. It may be out of date.
If you want me to update it or have any questions, please contact me
by email at: sabre@nondot.org.
Chris Lattner
sabre@nondot.org
http://nondot.org/sabre
US Citizen
Mailing Address Available Upon Request
My overall objective is to improve large software systems through the
development of novel techniques as well as the application of known
engineering principles. Of particular interest to me are compilers,
operating systems, and other system software.
I am a strong leader and have excellent communication skills (both
verbal and written). I am currently the chief architect of the Apple
Compiler Group and the llvm.org open source project. My role is to
redefine the Apple compiler strategy. I frequently give public and
private talks explaining and evangelizing LLVM for various purposes.
Keywords: LLVM, Compilers, operating systems, C/C++, Java, flex/bison,
pthreads, sockets, optimization, X86/X86-64/PowerPC/ARM/Thumb/SPARC assembly,
debugger, linker, loader...
Resume Contents:
I am the chief architect of the LLVM Compiler Infrastructure and manage
the LLVM group at Apple Inc. The LLVM compiler is an aggressive
optimizing compiler system that can be used to build traditional static
compilers, link-time optimizers, run-time optimizers and JIT systems.
LLVM is widely used for academic research projects, has been adopted for
commercial use by several companies, and has a broad and growing
developer base. For more information, please see the LLVM web
page: http://llvm.org/.
I also have a brief bio available.
University of Illinois,
Urbana-Champaign - Urbana, Illinois - GPA: 4.0
University of Portland -
Portland, Oregon - GPA: 3.9
- B.S. Computer Science: Fall 1996 - Spring 2000
Apple Inc
- Apple Inc: Developer Tools Group
LLVM Compiler Group Manager and Tech Lead
December 2006 - current
Our group is expanding use of LLVM within Apple, supporting new clients,
building new features, and extending LLVM further. Among other things, we
are currently building a new suite of front-end
technlogies based on LLVM.
- Apple Computer: Developer Tools Group
Senior Compiler Engineer and Tech Lead
June 2005 - December 2006
I drove LLVM productization, features and applications at Apple.
LLVM link-time
optimization support is now integrated into the Apple
system linker, and LLVM is used by the Apple
OpenGL group for several different purposes. My main contributions during
this time was a new llvm-gcc4 front-end, significant improvements to the X86
and PowerPC backends, a wide range of optimization improvements and new
optimizers, significant improvement to the target-independent code
generator, and leadership for the rest of the team.
Graduate School Work
-
University of Illinois at Urbana Champaign
Research Assistant
Fall 2000 - Spring 2005
I worked on numerous projects at UIUC, the most important being LLVM and Data Structure
Analysis (DSA). At Illinois, I designed and built most of the fundamental
aspects of LLVM, establishing the architecture for things to come and building most
of the scalar, loop and interprocedural optimizers. I also built most of the
target-independent code generator, X86 backend, JIT, llvm-gcc3 front-end, and
much more. Finally, I wrote many papers.
-
Microsoft Research: Programmer Productivity Research Center
Research Intern
Summer 2004
I worked on the Microsoft Phoenix compiler infrastructure, building an
experimental bridge between the Microsoft compiler and the LLVM compiler.
In the process, I identified and fixed numerous bugs in the (still in
early development) Microsoft compiler. Microsoft also hosted me for an
invited talk describing some of the key aspects of my research and LLVM.
IBM NUMA-Q / Sequent Computer Systems:
-
Operating Systems Group
Software Engineer Contractor
May '00 - Aug '00
I virtualized the Linux Kernel to run as a user-level application under
the Dynix/PTX operating system. This provided 100% compatibility
with existing Linux binaries, but this project was never productized.
-
Compilers & Tools Group
Software Engineer Contractor
May '99 - Dec '99
I was involved with the 4.5 release of Sequent's PTX OS, which added
kernel threads. I was primarily involved with debugging the
pthreads implementation while porting the Java Virtual Machine from
user-level threads to native threads. I also added thread awareness
to the system debugger.
-
Operating Systems Group
Software Engineer Intern
Jan '99 - Apr '99
I worked 16 hrs/wk developing an online remote kernel debugger based
on GDB.
-
Compilers & Tools Group
Software Engineer Intern
May-Aug, Dec '98
My primary work was to port Sun's Java Virtual Machine to the
Dynix/PTX OS. This involved work in both C & Java, in systems as
varied as user-level threads, garbage collection, and asynchronous
I/O.
Earlier Work Experience:
- FEI Company
Software Engineer
May-Aug, Dec '97
I designed a system for integrating an optical microscope into an
automated hard-drive head trimming application. My work involved
creating numerous C++ programs, communicating with various branches
of FEI, and dealing with customers (both remote and on-site).
- Cherokee Communications Corp
Head of R&D
Fall 1997 - 1999
Cherokee was a small start-up company where I lead the development of
a sophisticated application for managing and tracking web page
statistics. Although Cherokee is now defunct, MagicStats is still
available under the GPL.
- Intel Corp
Software Design Tester
May '96 - Aug '96
I tested applications and hardware for the (then) unreleased MMX
product line.
- "Making
Context-sensitive Points-to Analysis with Heap Cloning
Practical For The Real World"
Chris Lattner, Andrew Lenharth, and Vikram Adve
PLDI 2007, San Diego, CA, June
2007
- "Automatic Pool Allocation: Improving Performance by Controlling Data
Structure Layout in the Heap"
Chris Lattner & Vikram Adve
PLDI 2005, Chicago, IL, June 2005.
Awarded PLDI 2005 Best Paper Award
- "Automatic
Pointer Compression for Linked Data Structures"
Chris Lattner & Vikram Adve
ACM SIGPLAN 2005 Workshop on Memory System Performance (MSP'05)
Chicago, IL, June 2005.
- "Memory Safety
Without Runtime Checks or Garbage Collection"
Dinakar Dhurjati, Sumant Kowshik, Vikram Adve & Chris Lattner
2005 Transactions in Embedded Computing Systems (TECS'05)
Journal Publication
- "The LLVM
Compiler Framework and Infrastructure Tutorial"
Chris Lattner & Vikram Adve
LCPC'04 Workshop on Compiler Research Infrastructures, West Lafayette,
Indiana, Sep. 2004.
- "LLVM: An
Aggressive Compilation Framework for Life-Long Program Analysis
and Transformation"
Chris Lattner & Vikram Adve
CGO 2004, San Jose, CA, March 2004.
Best Student Presenter Award
- "LLVA: A Low-level
Virtual Instruction Set Architecture"
Vikram Adve, Chris Lattner, Michael Brukman, Anand Shukla, & Brian
Gaeke
MICRO-36 2003, San Diego, CA, December 2003.
- "Memory
Safety Without Runtime Checks or Garbage Collection"
Dinakar Dhurjati, Sumant Kowshik, Vikram Adve, & Chris Lattner
Proc. Languages Compilers and Tools for Embedded Systems 2003 (LCTES 03),
San Diego, CA, June 2003.
- "Architecture
For a Next-Generation GCC"
Chris Lattner & Vikram Adve
First Annual GCC Developers' Summit, Ottawa, Canada, May 2003.
- "Automatic Pool Allocation for Disjoint Data Structures"
Chris Lattner & Vikram Adve
ACM SIGPLAN 2002 Workshop on Memory System Performance (MSP'02),
Berlin, Germany, June 2002.
- "Developing a Graphical Robotics Simulator"
Ming-Shu Hsu & Chris Lattner
IASTED International Conference, Modeling & Simulation (MS'99)
- Apple WWDC 2008: Details forthcoming.
- "The
LLVM/Clang BSD Licensed Compiler Toolchain"
BSDCan 2008, Ottawa, Canada,
May 16-17, 2008.
- "The
LLVM Compiler System"
2007 O'Reilly Open Source Convention, Portland, OR, July 2007.
- "LLVM
2.0 and Beyond!"
Google Tech Talk, Mountain View, CA, July 25, 2007.
- "Taking Advantage of Compiler Advances" (shared talk)
2007 Apple World Wide Developer Conference (WWDC), San Francisco, CA,
June 2007.
- "LLVM in OpenGL and for Dynamic
Languages" (and several others)
LLVM Developer Meeting, Cupertino, CA, May 2007.
- "The LLVM
Compiler System"
2007 Bossa Conference on Open Source, Mobile Internet and Multimedia,
Recife, Brazil, March 2007.
- "Introduction
to the LLVM Compiler Infrastructure"
2006 Itanium Conference and Expo, San Jose, California, April 2006.
- "Macroscopic
Data Structure Analysis and Optimization"
Chris Lattner. Ph.D. Thesis, May 2005
- "LLVM: A Compilation Framework for Lifelong Program Analysis &
Transformation"
Chris Lattner & Vikram Adve
University of Illinois Technical Report #UIUCDCS-R-2003-2380, Sep 2003
- "Data
Structure Analysis: An Efficient Context-Sensitive Heap
Analysis"
Chris Lattner & Vikram Adve
University of Illinois Technical Report #UIUCDCS-R-2003-2340, Apr 2003
- "LLVM: An
Infrastructure for Multi-Stage Optimization"
Chris Lattner. Masters Thesis, Dec. 2002
- "The
LLVM Instruction Set and Compilation Strategy"
Chris Lattner & Vikram Adve
Univ. of Illinois Technical Report #UIUCDCS-R-2002-2292, Aug 2002
- I have an (out of date) list of technical interests and activities, showing
the broad range of interests and experience I have:
http://www.nondot.org/sabre/Projects/
- In addition to technical activities:
- I was a competitive fencer and was president of the University of
Illinois Classical Fencing club.
- I taught an introduction to fencing class in Fall 2003, with
a class of ~15 people. I continued the training of this class
through Fall 2004.
- I enjoy downhill skiing and swimming.