[all-commits] [llvm/llvm-project] 28767a: [LAA] Support backward dependences with non-consta...

Florian Hahn via All-commits all-commits at lists.llvm.org
Fri May 10 03:47:36 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 28767afd53353d9333b0adf6f0fafa1592092532
      https://github.com/llvm/llvm-project/commit/28767afd53353d9333b0adf6f0fafa1592092532
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-05-10 (Fri, 10 May 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/lib/Transforms/Scalar/LoopFlatten.cpp
    M llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp
    M llvm/test/Analysis/LoopAccessAnalysis/multiple-strides-rt-memory-checks.ll
    M llvm/test/Analysis/LoopAccessAnalysis/non-constant-distance-backward.ll
    M llvm/unittests/Transforms/Vectorize/VPlanSlpTest.cpp

  Log Message:
  -----------
  [LAA] Support backward dependences with non-constant distance. (#91525)

Following up to 933f49248, also update the code reasoning about
backwards dependences to support non-constant distances.

Update the code to use the signed minimum distance instead of a constant
distance

This means e checked the lower bound of the dependence distance and the
distance may be larger at runtime (and safe for vectorization). Whether
to classify it as Unknown or Backwards depends on the vector width and
LAA was updated to take TTI to get the maximum vector register width.

If the minimum dependence distance is larger than the max vector width,
we consider it as backwards-vectorizable. Otherwise we classify them as
Unknown, so we re-try with runtime checks.

PR: https://github.com/llvm/llvm-project/pull/91525



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list