Fri 30 Oct 2015 10:30 - 10:52 at Grand Station 1 - 9. Compilation & Dynamic Analysis Chair(s): Frank Tip

To optimize code effectively, compilers must deal with memory dependencies. However, the state-of-the-art heuristics available in the literature to track memory dependencies are inherently imprecise and computationally expensive. Consequently, the most advanced code transformations that compilers have today are ineffective when applied on real-world programs. The goal of this paper is to solve this conundrum through dynamic disambiguation of pointers. We provide different ways to determine at runtime when two memory locations can overlap. We then produce two versions of a code region: one that is aliasing-free - hence, easy to optimize - and another that is not. Our checks let us safely branch to the optimizable region. We have applied these ideas on Polly-LLVM, a loop optimizer built on top of the LLVM compilation infrastructure. Our experiments indicate that our method is precise, effective and useful: we can disambiguate every pair of pointer in the loop intensive Polybench benchmark suite. The result of this precision is code quality: the binaries we generate are 10% faster than those that Polly-LLVM produces without our optimization, at the -O3 optimization level of LLVM.

Fri 30 Oct

Displayed time zone: Eastern Time (US & Canada) change

10:30 - 12:00
9. Compilation & Dynamic AnalysisOOPSLA at Grand Station 1
Chair(s): Frank Tip Samsung Research America
10:30
22m
Talk
Runtime Pointer DisambiguationOOPSLA Artifact
OOPSLA
Pericles Rafael Alves Federal University of Minas Gerais, Brazil, Fabian Gruber INRIA, France, Johannes Doerfert Saarland University, Alexandros Labrineas INRIA, France, Tobias Grosser ETH Zurich, Switzerland, Fabrice Rastello INRIA, France, Fernando Magno Quintão Pereira Federal University of Minas Gerais, Brazil
Link to publication
10:52
22m
Talk
Performance Problems You Can Fix: A Dynamic Analysis of Memoization OpportunitiesOOPSLA Artifact
OOPSLA
Luca Della Toffola ETH Zurich, Switzerland, Michael Pradel TU Darmstadt, Germany, Thomas Gross ETH Zurich, Switzerland
DOI
11:15
22m
Talk
RAIVE: Runtime Assessment of Floating-Point Instability by Vectorization
OOPSLA
Wen-Chuan Lee Purdue University, USA, Tao Bao Purdue University, USA, Yunhui Zheng IBM Research, Xiangyu Zhang Purdue University, USA, Keval Vora University of California at Riverside, USA, Rajiv Gupta University of California at Riverside, USA
DOI
11:37
22m
Talk
Automated Backward Error Analysis for Numerical Code
OOPSLA
Zhoulai Fu University of California at Davis, USA, Zhaojun Bai University of California at Davis, USA, Zhendong Su University of California at Davis, USA
DOI