[all-commits] [llvm/llvm-project] 9cf188: [SCEV] Do not plant SCEV checks unnecessarily

pawosm-arm via All-commits all-commits at lists.llvm.org
Tue Apr 25 13:48:00 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9cf1881f8f12a70c28432278a2878a6113c017c1
      https://github.com/llvm/llvm-project/commit/9cf1881f8f12a70c28432278a2878a6113c017c1
  Author: Paul Osmialowski <pawel.osmialowski at arm.com>
  Date:   2023-04-25 (Tue, 25 Apr 2023)

  Changed paths:
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/test/Transforms/LoopVectorize/vector-no-scevcheck.ll

  Log Message:
  -----------
  [SCEV] Do not plant SCEV checks unnecessarily

The vectorisation analysis collects strides for loop invariant
pointers, which is wrong because they are not strided. We don't
need to generate SCEV checks (which are costly performancewise)
for such pointers, we just need to do the appropriate aliasing
checks.

This patch fixes the problem by changing getStrideFromPointer()
to treat loop invariant pointers as having no stride.

Originally proposed by David Sherwood with further suggestions
from Florian Hahn.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D146958




More information about the All-commits mailing list