Post Job Free
Sign in

Developer Engineer

Location:
United States
Posted:
February 20, 2013

Contact this candidate

Resume:

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.



Contact this candidate