[all-commits] [llvm/llvm-project] e949b5: [LAA] Use PSE::getSymbolicMaxBackedgeTakenCount. (...

Florian Hahn via All-commits all-commits at lists.llvm.org
Tue Jun 4 14:23:52 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e949b54a5b7cd7cd0690fa126be3363a21f05a8e
      https://github.com/llvm/llvm-project/commit/e949b54a5b7cd7cd0690fa126be3363a21f05a8e
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-06-04 (Tue, 04 Jun 2024)

  Changed paths:
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
    M llvm/test/Analysis/LoopAccessAnalysis/early-exit-runtime-checks.ll
    A llvm/test/Transforms/LoopDistribute/early-exit.ll
    A llvm/test/Transforms/LoopLoadElim/early-exit.ll
    M llvm/test/Transforms/LoopVectorize/X86/vectorization-remarks-missed.ll

  Log Message:
  -----------
  [LAA] Use PSE::getSymbolicMaxBackedgeTakenCount. (#93499)

Update LAA to use PSE::getSymbolicMaxBackedgeTakenCount which returns
the minimum of the countable exits.

When analyzing dependences and computing runtime checks, we need the
smallest upper bound on the number of iterations. In terms of memory
safety, it shouldn't matter if any uncomputable exits leave the loop,
as long as we prove that there are no dependences given the minimum of
the countable exits. The same should apply also for generating runtime
checks.

Note that this shifts the responsiblity of checking whether all exit
counts are computable or handling early-exits to the users of LAA.

Depends on https://github.com/llvm/llvm-project/pull/93498

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



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