This was last updated in June 2010. 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.
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 a strong leader and have excellent communication skills (both verbal and written). I am currently a senior manager at Apple, the chief architect of the Apple Compiler Group and the founder and lead of the llvm.org open source project. My role is to redefine the Apple compiler strategy, and I manage the groups responsible for LLVM, Clang, GCC, LLDB, the C++ and Objective-C runtimes, and the low-level toolchain at Apple (both the Mac OS/X and iPhone OS variants). I frequently give public and private talks explaining and evangelizing LLVM for various purposes.
I am the chief architect of the LLVM Compiler Infrastructure and manage several groups at Apple responsible for compilers and tools. The LLVM project 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 Clang compiler, the LLDB debugger, the Clang Static Analyzer, and other low-level tools. 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.
I was awarded the ACM SIGPLAN Programming Languages Software Award in 2010 in recognition of my work on LLVM. Being the first year this was awarded is notable, because all programming language software systems were eligible. I am very thankful for the honor.
I manage 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. When my work in this time period becomes public, I will elaborate on my contributions.
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 LLDB to which I served as a consultant and contributed directly to turning it into an open source project.
In this time period, I was a second level manager running the teams responsible for Clang, LLVM, GCC, 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 compiler-rt library (which replaced libgcc in Snow Leopard) and many enhancements to existing components in the operating system.
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 OpenCL GPGPU technology.
Finally, during this period I architected and started implementation of a suite of front-end technlogies based on LLVM, named "Clang".
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.
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.
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.
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.
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.
I worked 16 hrs/wk developing an online remote kernel debugger based on GDB.
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.
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 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.
I tested applications and hardware for the (then) unreleased MMX product line.
University of Illinois, Urbana-Champaign - Urbana, Illinois - GPA: 4.0
University of Portland - Portland, Oregon - GPA: 3.9
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.