Chris Lattner's Homepage

About Me

My resumé, talks and publications. I am @clattner_llvm on Twitter. I am lattner on GitHub. I am not a web designer.

Work Experience

I joined SiFive in January 2020, and lead its Product and Engineering teams (incl. Hardware, Software, and Platform Engineering). We build the world's best RISC-V CPU and other IPs, a wide range of software for RISC-V, and an infrastructure that makes chip design faster, better and cheaper. From August 2017 to January 2020, I built a number of incredibly cool things at Google in the TensorFlow team, and led the infrastructure efforts, including hardware support (CPU, GPU, TPU), low-level runtime, and language efforts. Details are in my Google Resumé. In early 2017, I briefly ran the Tesla Autopilot team. We built a lot of great things, but Tesla wasn't the right fit for me. Details are in my Tesla Resumé. I worked for Apple from July 2005 to January 2017, holding a number of different positions over the years (a partial history is available in Apple resumé). This included managing the Developer Tools department, which was responsible for Swift Playgrounds for the iPad, Xcode, and Instruments, as well as compilers, debuggers, and related tools.

MLIR Compiler Infrastructure

I created and built the MLIR Compiler Infrastructure with a small-but-amazing team of compiler engineers at Google, starting from a whitepaper in April 2018. The TensorFlow product (and the machine learning domain in general) needs compilers of many different kinds for a wide range of graph-level problems, accelerators of all kinds, and a lot of 'glue' tools to tie everything together. Because existing solutions existed, we took time to build a world-class system, getting the core abstractions right, and investing in building great infrastructure and a team culture that valued engineering excellence. The MLIR project started as a scrappy but ambitious effort to reimagine how the entire stack worked, and produced a really interesting and extremely novel approach to constructing compilers of all kinds. The "MLIR" is often interpreted as being Machine Learning specific, but "MLIR" stands for "Multi-Level Intermediate Representation". It is a profound approach to compiler design, enabling a new generation of algorithms, approaches, and applications to many related tooling technologies. It is such a new approach that I believe it will take many years of further research and development for the compiler community to digest the implications and adapt. Even I don't feel like I understand all the ramifications, and need to reevaluate the long-held beliefs I've built up over the last two decades of compiler work I've done. MLIR is still young, but it has already seen widespread adoption and deployment within Google for many projects (including production deployments saving large amount of compute and OpEx dollars), it is a core part of several critical subsystems of TensorFlow, and is widely accepted and adopted across the industry in too many companies and projects to enumerate. MLIR is now part of the LLVM umbrella project as a new subproject (building on the strong and widely accepted reputation of the LLVM community), and is used by other LLVM projects like the Flang Fortran compiler. To learn more about MLIR, I'd recommend reading the canonical paper published about it. Please consider citing it if you build interesting work using it.

Swift

I started work on the Swift Programming Language (wikipedia) in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other amazing people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013. The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list. As of Dec 2015, Swift is open source, and you can participate at http://swift.org. The Xcode Playgrounds feature and REPL were a personal passion of mine, to make programming more interactive and approachable. The Xcode and LLDB teams have done a phenomenal job turning crazy ideas into something truly great. Playgrounds were heavily influenced by Bret Victor's ideas, by Light Table and by many other interactive systems. I hope that by making programming more approachable and fun, we'll appeal to the next generation of programmers and to help redefine how Computer Science is taught. Swift Playgrounds for the iPad is a crucial piece of this: it uses real Swift code to teach programming fundamentals, while also providing a full featured native iOS development experience that allows access to almost the entire iOS SDK. Swift Playgrounds includes high production value assets and curriculum produced by Apple, which provides a appealing and safe introduction to programming concepts for everyone. To learn more about the origins of Swift, I recommend listening/reading my thoughts in two interviews: January 2017 on the ATP Podcast (transcript) and January 2019 on the Swift Community Podcast (transcript excerpt).

LLVM and Clang

I am the original author of the LLVM Compiler Infrastructure, an open source umbrella project that includes all sorts of toolchain related technology: compilers, debuggers, JIT systems, optimizers, static analysis systems, etc. I started both LLVM and Clang and am still the individual with the most commits. Of course, as the community has grown, my contribution is being dwarfed by those from a wide range of really amazing folks. LLVM has enjoyed broad industry success - being widely used in commercial products - as well supporting hundreds of academic papers. LLVM is now overseen by the LLVM Foundation a 501(c)(3) nonprofit, and I serve on its Board of Directors. For its contribution to the software industry, LLVM has been recognized with the ACM Software System Award. For more details about LLVM, see: LLVM Compiler Infrastructure home page Invited talks about LLVM and other topics Random notes on LLVM - Unofficial notes and thoughts on LLVM extensions and todo items.



Talks, Writing, and Publications

Over the years, I've written a lot of things, delivered many public talks, and have published some academic papers.