Winners announced in Annual Code Optimization Contest

"" Enlarge
EECS 583 2013 Optimization Contest Champions: (from left to right): Yijia Tang (Benchmark 4 winner), Lin Hao Peng (Overall 3rd place), Balaji Soundararajan (Overall 1st place), Hongyi Yao (Overall 2nd place), Randy Piper (Benchmark 2 winner), and Kelsey Rosenthal (Benchmark 3 winner)

Students in Prof. Scott Mahlke‘s EECS 583 course, Advanced Compilers, competed in the Annual Code Optimization contest to create a compiler that generates the fastest applications.

Under the contest rules, everyone starts with the base LLVM compiler system ( and must design and implement their own version of speculative loop invariant code motion or speculative LICM. LICM is an optimization that eliminates instructions from frequently executed loops to improve performance. Speculative LICM goes one step further using program profiling data to remove instructions that are statistically invariant.  Speculative LICM creates many more optimization opportunities, but students must be careful to ensure that the application still executes properly by checking for mis-speculations and repairing execution when the application does not behave as they predicted it would.

The students were judged on four compute-intensive benchmarks. The first criteria was that all the applications had to run correctly.  Then, highest performance was used to select the winner.

The overall winner was CSE graduate student Balaji Soundararajan, who achieved a geometric mean of 1.22x speedup on the four benchmarks. CSE graduate student Hongyi Yao and EECS undergraduate student Lin Hao Peng were close runner ups, achieving 1.21x  and 1.20x speedups on the four benchmarks.  Congratulations also go to Yijia Tang, Kelsey Rosenthal, Randy Piper, and Yi Wang who scored first place finishes on individual benchmarks.