This was last updated in October ****. It may be out of date.
If you want me to update it or have any questions, please contact me
by email at: *****@******.***.***** ************@******.***
http://nondot.org/sabre
US Citizen, Ph.D. Computer Science
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,
debuggers, operating systems, graphics, and other system software. I am
the creator and a lead on both and, two projects which have grown
far beyond my own contributions.
I am a strong leader and have excellent communication skills (both
verbal and written). I am currently a Director of the Low-Level Tools
team at Apple and the founder and lead of the open source project. My role
is to drive innovation in the low-level tools and programming language
space, and I manage the groups responsible for LLVM, Clang, LLDB,
the C++ and Objective-C runtimes, and the low-level toolchain at Apple
(for both Mac OS/X and iOS). I occasionally give talks explaining and
evangelizing LLVM and Clang for various purposes.Resume Contents:Dissertations & Technical Reports
I am the chief architect of the LLVM Compiler Infrastructure and manage
several groups at Apple responsible for compilers and tools. The is an umbrella project which has
grown to include a broad range of compiler, debugger, and runtime library
technology. Assembled out of this technology are things like the, the, the, and
other low-level tools.
LLVM is widely used for academic research
projects, has been adopted for,
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 .
I was awarded the
in 2010 in .
Being the first year this was awarded is notable, because all programming
language software systems were eligible. I am very thankful for the honor.Book Chapter
In 2011, I wrote a chapter on LLVM for "The Architecture of Open Source
Applications," a book on software design. describes
traditional compiler design, what makes LLVM different, how
library-based design impacts applicability of the code, and how some simple
optimizations work.
Apple IncApple Inc: Developer Tools Department
Director and Architect, Developer Tools Department
January 2013 - Ongoing
In January, I took over management and leadership of the entire Developer
Tools department at Apple (> 100 people). In addition to compilers and
low-level tools, I am now responsible for the Xcode IDE, Instruments performance
analysis tool, Apple Java releases, and a variety of internal tools.
Apple Inc: Developer Tools Group
Director and Architect, Low-Level Tools
September 2011 - January 2013
This timeframe has included numerous technical and team achievements
across a wide range of domains. For example:
Apple shipped the Mac OS X 10.8 and iOS 6 releases, and they were
built with Clang - llvm-gcc is obsolete, and GCC is long gone.We invested major effort into compiler implementation and tuning for
the custom Apple CPU design known as the "". The
exceptional CPU performance of the iPhone 5 was a result of a joint effort
between the Apple silicon and LLVM teams.I personally drove LLDB to production quality and to become the default
debugger in Xcode.I drove the new "Objective-C
Literal Syntax" language extensions, making many common
situations in Objective-C much more syntactically elegant.We shipped Xcode
4.3, 4.4, and 4.5 releases, and I was a key part of the high level
feature planning and decision processes that defined the features and
shaped the releases.
I continue my work to push developer tools and languages at Apple forward -
we're not out of ideas yet. :) When more of my work in this time period
becomes public, I will elaborate on my contributions.
Apple Inc: Developer Tools Group
Senior Manager and Architect, Low-Level Tools
June 2010 - September 2011
I managed the teams responsible for compilers, the LLDB debugger,
Objective-C and C++ runtimes, assembler, linker, dynamic loader, etc. I
am continuing my work improving the Apple developer tools, and continue to
contribute daily to the open source LLVM technologies. During this time
period my team switched Mac OS/X Lion and iOS5 to build with llvm-gcc and
clang (off of GCC 4.2) and oversaw the final release of Xcode 4.0 in March
(as well as subsequent updates).
Xcode 4.2 was a specific achievement in that it is the first release where
all of its compilers are LLVM-based (GCC 4.2 is no longer included).
Xcode 4.2 also includes the "Automatic
Reference Counting (ARC) Objective-C language feature (see also the
).
ARC has revolutionized Objective-C programming by automating memory
management without the runtime overhead of a garbage collector. I personally
defined and drove this feature late in the schedule of iOS5 and Lion. This
is notable for the short schedule for the project, the extensive
cross-functional work required, and the extensive backwards compatibility
issues that had to be addressed (making it a very technically complex
problem). Apple Inc: Developer Tools Group
Senior Manager of Compilers and Low-Level Tools, Compiler Architect
September 2009 - June 2010
My work in this time period culminated in the release of the Xcode 4 preview
at WWDC, which included a preview release of Clang C++ support, a new C++ Standard Library, a much faster and
memory efficient system linker, a new X86
assembler (which is integrated into the clang compiler, providing faster
compile times), and countless smaller improvements throughout the toolchain.
Xcode 4 itself now features deep integration of the Clang parser for code
completion, syntax highlighting, indexing, live warning and error messages,
and the new 'Fix-It' feature in which the compiler informs the UI how to
automatically corrects small errors. LLVM-GCC is the default compiler in
Xcode 4.
The Xcode 4 preview also includes the first public release of to which I served as a
consultant and contributed directly to turning it into an open source
project. Apple Inc: Developer Tools Group
Manager of Compilers and Low-Level Tools, Compiler Architect
July 2008 - September 2009
In this time period, I was a second level manager running the teams responsible for,,,
and other parts of the Apple toolchain (assembler, linker, etc). I directly
managed the Clang team, contributed daily to both the Clang and LLVM projects,
and continued in my role as compiler architect and lead on the Open Source
LLVM/Clang projects.
During this period my team brought Clang 1.0 to production quality as a
brand new C and Objective-C compiler for X86-32 and X86-64. We also
productized and shipped the Xcode static analyzer, a new
(which replaced libgcc in Snow Leopard) and many enhancements to existing
components in the operating system. Apple Inc: Developer Tools Group
LLVM Compiler Group Manager and Compiler Architect
December 2006 - July 2008
In this time period, my group expanded use of LLVM within Apple, supported
new clients, built new features, and extended LLVM in many ways.
We shipped llvm-gcc 4.2 in the Xcode 3.1 and major improvements for it in the
Xcode 3.1.1 release.
In addition to llvm-gcc, much of the work during this time was focused on
Mac OS 10.6 development. I made major contributions to design and
implementation of the "Blocks" language feature as well as to the architecture and design of
the language and compiler aspects of the GPGPU technology.
Finally, during this period I architected and started implementation of a
suite of front-end technlogies based on LLVM, named "".
Apple Computer Inc: 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 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 .
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
(which allowed LLVM to compile and run .NET code).
In the process, I identified and fixed numerous bugs in the (still in
early development) Microsoft compiler.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 porting the Java Virtual Machine
from user-level threads to native threads, but was also drive debugged many
kernel issues in the pthreads implementation. 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.
University of Illinois,
Urbana-Champaign - Urbana, Illinois - GPA: 4.0
Ph.D. Computer Science: Spring 2002 - Spring 2005
Thesis: "Macroscopic
Data Structure Analysis and Optimization"M.S. Computer Science: Fall 2000 - Fall 2002
Thesis: "LLVM:
An Infrastructure for Multi-Stage Optimization"
-
Portland, Oregon - GPA: 3.9
B.S. Computer Science: Fall 1996 - Spring 2000
Since joining industry, I rarely take time to write papers about my
work, preferring instead to focus on building new great things. That
said, LLVM is widely used as a basis for many current and past research
projects by other people."Making
Context-sensitive Points-to Analysis with Heap Cloning
Practical For The Real World"
Chris Lattner, Andrew Lenharth, and Vikram Adve, San Diego, CA, June
2007"Automatic Pool Allocation: Improving Performance by Controlling Data
Structure Layout in the Heap"
Chris Lattner & Vikram Adve, 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, 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, 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.
""
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)
"Developer Tools
Kickoff" (shared talk)
2012 Apple World Wide Developer Conference (WWDC), San Francisco, CA,
June 2012."Increasing Industry Impact of Compiler
Optimization Research"
Opening Keynote, 2012 International Symposium on Code Generation and Optimization (CGO'12), San Jose, CA,
April 2012."LLVM and
Clang: Advancing Compiler Technology
Keynote, Free and Open Source Developers' European Meeting (FOSDEM'11), Brussels, Belgium, February 2011."What's New in the
LLVM Compiler" (shared talk)
2010 Apple World Wide Developer Conference (WWDC), San Francisco, CA,
June 2010."" (shared
talk) and several other pieces of the meeting, such as the introduction,
open discussion forum, etc.
LLVM Developer Meeting, Cupertino, CA, Oct 2009."Developer Tools State of the Union" (shared talk)
2009 Apple World Wide Developer Conference (WWDC), San Francisco, CA,
June 2009."Compiler State of the Union" (shared talk)
2009 Apple World Wide Developer Conference (WWDC), San Francisco, CA,
June 2009."Introduction
to the LLVM Compiler System"
Plenary Talk, : Advanced
Computing and Analysis Techniques in Physics Research, Erice,
Sicily, Italy, November 2008."Compiler State of the Union" (shared talk)
2008 Apple World Wide Developer Conference (WWDC), San Francisco, CA,
June 2008."LLVM Compiler In Depth" (shared talk)
2008 Apple World Wide Developer Conference (WWDC), San Francisco, CA,
June 2008."LLVM and
Clang: Next Generation Compiler Technology", 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.Dissertations & Technical Reports"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
In addition to technical activities:
I enjoy woodworking, downhill skiing, swimming, and walking our dogs.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.