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.