skip to main content

Adve and Lattner Receive ACM Software System Award

4/24/2013 6:34:00 AM By Tom Moone, CS @ ILLINOIS

CS Professor Vikram Adve, CS alumnus Chris Lattner (MS CS ’02, CS PhD ’05), and Apple Inc. software engineer Evan Cheng have been named recipients of the ACM Software System Award for their work on LLVM. LLVM is an infrastructure designed to help build compilers and other programming tools for a variety of programming languages. This is the second winner of this award at the University of Illinois: NCSA Mosaic, the first popular Web browser, received the award in 1995.

CS Professor Vikram Adve was one of the recipients of the ACM Software System Award for work on LLVM. One of the other recipients was CS alumnus Chris Lattner.
CS Professor Vikram Adve was one of the recipients of the ACM Software System Award for work on LLVM. One of the other recipients was CS alumnus Chris Lattner.
CS Professor Vikram Adve was one of the recipients of the ACM Software System Award for work on LLVM. One of the other recipients was CS alumnus Chris Lattner.

According to an ACM press release, the researchers were recognized in particular for designing and implementing LLVM, which is noted for “the openness of its technology and the quality of its architecture and engineering as well as its clean, flexible design and easy-to-use programming interfaces.”

Lattner and Adve began working on LLVM in 2000. At the time, said Adve, there was a dichotomy in compilers. Some compilers worked with static languages, such as C, C++, and Fortran. “You basically compile them ahead of time to machine code,” he said. “And then once you get machine code, you leave it the way it is. You don’t do much with it.”

Other compilers worked on managed languages such as Java and C#, and were able to do analyses and transformations while a program is running. These were the so-called just-in-time compilers. “You never could use these run-time techniques on static languages or do any static techniques on managed languages,” said Adve.

Adve believes this was perhaps the major technical innovation of LLVM—the ability to apply either ahead-of-time or run-time techniques with any of these languages.

LLVM was released to the public in October 2003 as an open source compiler infrastructure. In less than ten years, it has had a major impact. LLVM is now the primary compiler used in all Apple products, as well as in products from many other large and small technology companies, ranging from iOS and Android mobile devices to Cray supercomputers (including Blue Waters, the new Petaflop-scale system at the University of Illinois). LLVM has also seen widespread and rapidly growing adoption for software research, in areas as diverse as architecture, compilers, software security, formal verification, and silicon compilation, among many others.

“I think there are two reasons why LLVM has become so popular,” said Adve. “One is the innovative design, which has enabled a wide range of compile-time, link-time and run-time compiler products for a wide variety of programming languages. The second reason is that it’s a very well-designed, well-engineered software system.”

Adve gives much of the credit for the software design, in particular, to Lattner. “Chris is a phenomenal programmer and system designer,” he said. “He is single-handedly responsible for the elegance and cleanliness of the LLVM architecture, as well as much of the code.”

In spite of these advantageous features, Adve had no idea that LLVM would turn out to be as popular as it has. “I think our best hopes would have been that it would be used by a few companies, and used somewhat more widely in the research community where having a more modern and easier-to-use infrastructure makes a big difference,” said Adve.

But they did not expect it to become a primary compiler at companies as large as Apple, Qualcomm, nVidia and Cray. That is a very big deal, explained Adve. “The compiler is a lynchpin piece of software. All kinds of tools in the tool chain get affected when you change the compiler, such as debuggers, linkers, performance analysis tools, and interactive development environments,” he said. “Replacing the compiler system is a much deeper change than you could imagine, especially for a major company with a large portfolio of software tools.”

Adve has recently begun investigating new directions for LLVM. He is now using it in a project on heterogeneous parallel computing, such as would be needed to make full use of the application processors in modern smartphones and tablets. “LLVM gives us an interesting foundation for that research,” he said. “We are basically trying to extend LLVM to provide an explicitly parallel virtual instruction set abstraction for heterogeneous parallel systems.”

Over the course of his career, Adve has won numerous awards for his research, including the Audience Choice Paper Award at the ACM 2007 Symposium on Operating Systems Principles, the Best Paper Award at the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation (jointly with Chris Lattner for a key part of Lattner’s PhD dissertation), the C.W. Gear Outstanding Junior Faculty Award from CS @ ILLINOIS in 2002, an NSF CAREER Award in 2001, and a Best Paper Award at the 2001 Workshop on Parallel and Distributed Simulations.