Superoptimizing LLVM

Compilers are caught in a tug-of-war between increasingly exotic architectures and instruction set extensions on one hand, and our desire for advanced programming languages and PL features on the other. A multi-language, multi-target compiler infrastructure such as LLVM ameliorates the situation somewhat, but engineering fast, effective and correct optimizations for LLVM is challenging. Even after a decade of intense development, there is a long tail of unimplemented optimizations. University of Utah Associate Professor John Regehr presents Souper, a superoptimizer that gives us a look at some of the optimizations that are missing from LLVM while also avoiding the bugs that are often found in hand-written optimization passes. Souper works by turning LLVM code into queries for an automated theorem prover. When Souper is run on LLVM itself, it identifies thousands of uncaught optimizations and also ranks them according to the likely improvement in code size or code speed that would result from implementing each one. John Regehr, Associate Professor, School of Computing, University of Utah 12/2/2014 https://www.cs.washington.edu/htbin-post/mvis/mvis?ID=2643 http://uwtv.org

Related Talks

DConf 2014 Day 2 Talk 2: Refactoring JIT Compilation by Maxime Chevalier-Boisvert

Higgs, a JIT compiler for JavaScript written in D, was presented at DConf 2013. Basic block versioning, a novel optimization technique in early stages of testing at the time, was also introduced. Experimental results demonstratring how basic block versioning fares on multiple metrics across a variety of benchmarks can now ...

Intel OpenCL SDK Vectorizer

In this talk, we will present our OpenCL SDK and its core technology -- the vectorizer compiler. We plan to present an overview of our vectorizer and discuss our experience with the LLVM compiler toolkit over the last few years. We will discuss some of our design decisions and our ...

Paul Irish, "Delivering the goods" - Fluent 2014 Keynote

Fluent 2014, "Keynote With Paul Irish". About Paul Irish (Google): Paul Irish is a front-end developer who loves the web. He is on Google Chrome's Developer Relations team as well as jQuery's. He develops the HTML5 Boilerplate, the HTML5/CSS3 feature detection library Modernizr, HTML5 Please, CSS3 Please, and other bits and bobs of ...

PTX Back-End: GPU Programming With LLVM

40 minutes
In this talk, the PTX back-end for LLVM will be discussed, including its' past, present, and future. The current status of the back-end will be explored, with an emphasis on the portions of the LLVM IR instruction set and PTX intrinsics that are currently supported during code generation. This talk ...