Write a Blog >>
CC 2020
Sat 22 - Wed 26 February 2020 San Diego, California, United States
Sun 23 Feb 2020 09:37 - 10:00 - Session 4 Optimizations Chair(s): Michel Steuwer

Loop unrolling is a widely adopted loop transformation, commonly used for enabling subsequent optimizations. Straight-line-code vectorization (SLP) is an optimization that benefits from unrolling. SLP converts isomorphic instruction sequences into vector code. Since unrolling generates repeated isomorphic instruction sequences, it enables SLP to vectorize more code. However, most production compilers apply these optimizations independently and uncoordinated. Unrolling is commonly tuned to avoid code bloat, not maximizing the potential for vectorization, leading to missed vectorization opportunities.

We are proposing VALU, a novel loop unrolling heuristic that takes vectorization into account when making unrolling decisions. Our heuristic is powered by an analysis that estimates the potential benefit of SLP vectorization for the unrolled version of the loop. Our heuristic then selects the unrolling factor that maximizes the utilization of the vector units. VALU also forwards the vectorizable code to SLP, allowing it to bypass its greedy search for vectorizable seed instructions, exposing more vectorization opportunities.

Our evaluation on a production compiler shows that VALU uncovers many vectorization opportunities that were missed by the default loop unroller and vectorizers. This results in more vectorized code and significant performance speedups for 17 of the kernels of the TSVC benchmarks suite, reaching up to 2× speedup over the already highly optimized -O3. Our evaluation on full benchmarks from FreeBench and MiBench shows that VALU results in a geo-mean speedup of 1.06.

Sun 23 Feb
Times are displayed in time zone: Pacific Time (US & Canada) change

08:30 - 10:00
Session 4 OptimizationsMain Conference
Chair(s): Michel SteuwerUniversity of Glasgow
08:30
22m
Research paper
Mix Your Contexts Well: Opportunities Unleashed by Recent Advances in Scaling Context-Sensitivity
Main Conference
Manas ThakurIIT Mandi, V Krishna NandivadaIIT Madras
08:52
22m
Research paper
Secure Delivery of Program Properties Through Optimizing Compilation
Main Conference
Son Tuan VuSorbonne Université, CNRS, Laboratoire d'Informatique de Paris 6, LIP6, Karine HeydemannSorbonne Université, CNRS, Laboratoire d'Informatique de Paris 6, LIP6, Albert CohenGoogle, Arnaud de GrandmaisonArm
09:15
22m
Research paper
Scalable Pointer Analysis of Data Structures Using Semantic Models
Main Conference
Pratik FegadeCarnegie Mellon University, Oracle Labs, Christian WimmerOracle Labs
09:37
22m
Research paper
Vectorization-Aware Loop Unrolling with Seed Forwarding
Main Conference
Rodrigo C. O. RochaUniversity of Edinburgh, Vasileios PorpodasIntel Corporation, Pavlos PetoumenosUniversity of Edinburgh, Luís GóesPUC Minas, Zheng WangUniversity of Leeds, Murray ColeUniversity of Edinburgh, Hugh LeatherUniversity of Edinburgh