• Paper: Retrofitting Control Flow Graphs in LLVM IR for Auto Vectorization

    From John R Levine@johnl@taugh.com to comp.compilers on Wed Oct 8 17:07:20 2025
    From Newsgroup: comp.compilers

    This paper says it significantly improves vector performance in GCC and
    LLVM.

    https://arxiv.org/abs/2510.04890

    Retrofitting Control Flow Graphs in LLVM IR for Auto Vectorization

    Shihan Fang, Wenxin Zheng

    Modern processors increasingly rely on SIMD instruction sets, such as AVX
    and RVV, to significantly enhance parallelism and computational
    performance. However, production-ready compilers like LLVM and GCC often
    fail to fully exploit available vectorization opportunities due to
    disjoint vectorization passes and limited extensibility. Although recent attempts in heuristics and intermediate representation (IR) designs have attempted to address these problems, efficiently simplifying control flow analysis and accurately identifying vectorization opportunities remain challenging tasks.

    To address these issues, we introduce a novel vectorization pipeline
    featuring two specialized IR extensions: SIR, which encodes high-level structural information, and VIR, which explicitly represents instruction dependencies through data dependency analysis. Leveraging the detailed dependency information provided by VIR, we develop a flexible and
    extensible vectorization framework. This approach substantially improves interoperability across vectorization passes and expands the search space
    for identifying isomorphic instructions, ultimately enhancing both the
    scope and efficiency of automatic vectorization. Experimental evaluations demonstrate that our proposed vectorization pipeline achieves significant performance improvements, delivering speedups of up to 53% and 58%
    compared to LLVM and GCC, respectively.

    Regards,
    John Levine, johnl@taugh.com, Taughannock Networks, Trumansburg NY
    Please consider the environment before reading this e-mail. https://jl.ly
    --- Synchronet 3.21a-Linux NewsLink 1.2