[all-commits] [llvm/llvm-project] 498aa5: [IVDescriptors] Add pointer InductionDescriptors w...

Philip Reames via All-commits all-commits at lists.llvm.org
Thu Mar 30 11:56:18 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 498aa534f472d28db893aa9a8627d0b46e17f312
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M llvm/lib/Analysis/IVDescriptors.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll

  Log Message:
  [IVDescriptors] Add pointer InductionDescriptors with non-constant strides

This matches the handling for integer IVs.  I left the non-opaque cases alone, mostly because they're largely irrelevant today.

This doesn't actually make much difference in vectorization right now as we immediately fail on aliasing checks (which also bail on non-constant strides).  Slightly suprisingly, it's the case which *do* need runtime checks which work after this patch as they don't use the same dependency analysis path.

This will also enable non-constant stride pointer recurrences for other consumers.  I've auditted said code, and don't see any obvious issues.

More information about the All-commits mailing list