An Empirical Study of the Effect of Source-level Loop Transformations on Compiler Stability
summary
A systematic study extracts ~1,100 loop nests and generates 65,000 mutations via interchange, tiling, unrolling, rolling and distribution, then compiles with ICC, GCC and Clang and measures time and hardware counters. Results show 47% of loops improved 1.15x or more with an average 1.6x on improved loops, estimated performance headroom of ~21–31%, and 36–38% of originally non‑vectorized loops become vectorizable and >15% faster; ICC is fastest but least stable.
AI-written summary · about
chapters (10)
- 0:00Start
- 0:13Compiler Stability
- 1:18Importance of the Compiler Stability
- 3:11Methodology
- 4:32To Generate Sloop Mutations
- 7:59Intra Compiler Stability Score
- 9:44Inter Compiler Stability
- 9:56Pre Transformation Inter Compiler Stability Score
- 10:23Post Transformation Inter Compiler Stability Score
- 16:09Conclusion
related talks
14mOn-Stack Replacement for Program Generators and Source-to-Source Compilers
15mNot So Fast: Understanding and Mitigating Negative Impacts of Compiler Optimizations on Code Reuse G
27mDistributing and Parallelizing Non-canonical Loops
17mFuzzing Loop Optimizations in Compilers for C++ and Data-Parallel Languages
33mImproving the Effectiveness and Generality of GCC Auto-Vectorization
59mCompilers can be surprising
19mExploiting Undefined Behavior in C/C++ Programs for Optimization: A Study on the(…)
53mLocknote: How Badly Do We Want Correct Compilers?
