This is really old, see Resume.html!
Note, this was last updated: Sep 21, 2005. It may be long 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
Mailing Address Available http://nondot.org/sabre
Upon Request http://llvm.org/
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.
Keywords: Compilers, operating systems, C/C++, Java, Haskell, perl,
flex/bison, pthreads, sockets, optimization, assembly, ...
Current Development Focus
=========================
I am the lead developer of the LLVM Compiler Infrastructure, and manage
the LLVM group at Apple Computer. 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/
Education
=========
University of Illinois, Urbana-Champaign - Urbana, IL GPA: 4.0
Ph.D. Computer Science: Spring 2002 - Spring 2005
M.S. Computer Science: Fall 2000 - Fall 2002
University of Portland, Portland, OR GPA: 3.9
B.S. Computer Science: Fall 1996 - Spring 2000
Journal Publications
====================
* Memory Safety Without Runtime Checks or Garbage Collection
Dinakar Dhurjati, Sumant Kowshik, Vikram Adve & Chris Lattner
2005 Transactions in Embedded Computing Systems (TECS'05)
Conference Publications and Activities
======================================
* "Making Context-sensitive Points-to Analysis with Heap
Cloning Practical For The Real World"
Chris Lattner, Andrew Lenharth, and Vikram Adve
ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation
(PLDI'07), San Diego, CA, June 2007 (to appear)
* "Automatic Pool Allocation: Improving Performance by Controlling Data
Structure Layout in the Heap"
Chris Lattner & Vikram Adve
ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation
(PLDI'05), 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.
* "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
2004 International Symposium on Code Generation and Optimization (CGO'04),
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
Proc. of the 36th annual ACM/IEEE international symposium on
Microarchitecture (MICRO-36), 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)
Technical Reports/Dissertations
===============================
* "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
Industry Experience / Product Development
=========================================
* December 2006 - Apple Computer: Developer Tools Group
LLVM Compiler Group Manager
Our group is expanding use of LLVM within Apple, supporting new clients
and building new features.
* June 2005 - December 2006 Apple Computer: Developer Tools Group
Senior Computer Engineer
I am driving 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 OpenGL group for several different
purposes.
* Summer 2004 Microsoft Research: Programmer Productivity Research Center
Research Intern
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:
* May '00 - Aug '00 Operating Systems Group
Software Engineer Contractor
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.
* May '99 - Dec '99 Compilers & Tools Group
Software Engineer Contractor
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.
* Jan '99 - Apr '99 Operating Systems Group
Software Engineer Intern
I worked 16 hrs/wk developing an online remote kernel debugger based
on GDB.
* May-Aug, Dec '98 Compilers & Tools Group
Software Engineer Intern
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:
* May-Aug, Dec '97 FEI Company
Software Engineer
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).
* Fall 1997 - 1999 Cherokee Communications Corp
Head of R&D
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.
* May '96 - Aug '96 Intel Corp
Software Design Tester
I tested applications and hardware for the (then) unreleased MMX
product line.
Interests and Activities
========================
* I maintain a 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.