USA - 2012
For designing and implementing LLVM, a persistent, language-independent program representation that enables code analysis and transformation, including compile time, link time, and run time optimizations, for arbitrary languages. Since its open source release in 2003, LLVM has become widely used in both commercial products and for computer science research.
LLVM is a persistent, language-independent program representation based on static single assignment (SSA) form that enables code analysis and transformation, including compile time, link time, and run time optimizations, for arbitrary programming languages. The openness of the LLVM technology and the quality of its architecture and engineering design are key factors in understanding the success it has had both in academia and industry.
Due to its clean and flexible design and easy to use programming interfaces, LLVM has quickly replaced GCC as the infrastructure of choice for doing research on program translation, optimization, and analysis. Researchers routinely use it for projects as diverse as building link-time interprocedural optimizers, just-in-time compilers, secure browser extensions, language virtual machines, static analysis tools, automatic vectorization, GPU programming, software verification, hardware synthesis tools, embedded code generators, and numerous language implementations.
In the years since its release, LLVM has been incorporated into commercial products by Apple, Adobe, AMD, Arxan, AutoESL, Cray,Google, Intel, National Instruments, nVidia, REAL Software, XMOS, and many others. LLVM has completely replaced GCC as the primary compiler in the latest OS X and iOS systems, so that every newly compiled application for Apple devices is compiled with LLVM. LLVM has also had significant commercial impact by enabling the design and implementation of powerful graphics languages like OpenCL and Renderscript. Every commercial implementation of OpenCL (e.g., from AMD, Apple, Intel and nVidia) is based on LLVM. All recent Android devices ship with LLVM to compile graphics code written in Renderscript.