The LLVM
Devise Loop Distribution with Scalar Expansion for LLVM
Pages
43
Time to read
17 mins
Publication
Language
English
Pages
43
Time to read
17 mins
Publication
Language
English
This technical report discusses the development of a loop distribution algorithm that utilizes scalar expansion to enhance auto-vectorization in LLVM. The document outlines the limitations of the current LoopDistribute pass, which aims to enable partial loop vectorization but faces challenges such as the inability to reorder memory operations and issues with partitioning due to interleaved instructions. It details the proposed DDG-based loop distribution approach, which aims to improve partitioning capabilities by leveraging data dependence graphs. The report includes case studies demonstrating the algorithm's effectiveness in eliminating redundant loads and managing memory operation order. Additionally, it addresses the motivation behind using scalar expansion for breaking dependencies and outlines the requirements for detecting allocation-free expandable scalars. The findings suggest that the new approach could lead to more precise partitioning of cyclic instructions, thereby improving performance in LLVM.