IMG_1982Youfeng Wu, Björn Franke, Hao Zhou, Rubens E. A. Moreira, Fabrice Rastello, Florian Brandner

Best Paper Award

Exploiting Mixed SIMD Parallelism by Reducing Data Reorganization Overhead
Hao Zhou and Jingling Xue, UNSQ, Australia

Existing loop vectorization techniques can exploit either intra- or inter-iteration SIMD parallelism alone in a code region if one part of the region vectorized for one type of parallelism has data dependences (called mixed-parallelism-inhibiting dependences) on the other part of the region vectorized for the other type of parallelism. In this paper, we consider a class of loops that exhibit both types of parallelism (i.e., mixed SIMD parallelism) in its code regions that contain mixed-parallelism-inhibiting data dependences. We present a new compiler approach for exploiting such mixed SIMD parallelism effectively by reducing the data reorganization overhead incurred when one type of parallelism is switched to the other. Our auto-vectorizer is simple and has been implemented in LLVM (3.5.0). We evaluate it on seven benchmarks with mixed SIMD parallelism selected from SPEC and NAS benchmark suites and demonstrate its performance advantages over the state-of-the-art.

ACM Student Research Competition

Winner: Inference of Peak Density of Indirect Branches to Detect ROP Attacks
Rubens E. A. Moreira (Universidade Federal de Minas Gerais, Brazil)

1st Runner Up: Generalized Tiling
Duco van Amstel (Kalray SA/Inria, France)

2nd Runner Up: Autotuning Multi-tiered Applications for Performance
Vimuth Dinuka Fernando (University of Moratuwa, Sri Lanka)

Test of Time Award

BIRD: Binary Interpretation using Runtime Disassembly

The CGO 2006 paper “BIRD: Binary Interpretation using Runtime Disassembly” by Susanta Nanda, Wei Li, Lap-Chung Lam and Tzi-cker Chiueh marks a turning point in achieving complete disassembly of commercially distributed x86 binaries.  BIRD attains complete disassembly by combining static and dynamic disassembly in a novel way.  BIRD uncovers as many instructions as possible statically, deferring the hard to find instructions until runtime at which point when the program transfers to a statically unknown area BIRD disassembles the instructions. By integrating static and dynamic disassembly together, BIRD achieves 100% coverage with low run-time overhead. BIRD has emerged as a building block in the development of binary transformation and analysis systems.  The BIRD is the WORD!

We even have a theme song that goes with it, click here!

BIRD was chosen for its deep technical contributions to a hard problem that needed to be solved. It has 98 citations, and more importantly it has had impact outside of CGO, mostly involving security research.