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
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 ...
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 ...
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 ...
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 ...