[all-commits] [llvm/llvm-project] c354c6: [SCEV] Add function to compute minium of countable...

Florian Hahn via All-commits all-commits at lists.llvm.org
Mon May 27 20:17:57 PDT 2024


  Branch: refs/heads/users/fhahn/scev-countable-exit-counts
  Home:   https://github.com/llvm/llvm-project
  Commit: c354c6bb33a27c2388cf0b6f6a795ee841f58eca
      https://github.com/llvm/llvm-project/commit/c354c6bb33a27c2388cf0b6f6a795ee841f58eca
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/test/Analysis/ScalarEvolution/becount-invalidation.ll
    M llvm/test/Analysis/ScalarEvolution/exit-count-non-strict.ll
    M llvm/test/Analysis/ScalarEvolution/exponential-behavior.ll
    M llvm/test/Analysis/ScalarEvolution/flags-from-poison.ll
    M llvm/test/Analysis/ScalarEvolution/incorrect-exit-count.ll
    M llvm/test/Analysis/ScalarEvolution/max-trip-count.ll
    M llvm/test/Analysis/ScalarEvolution/ne-overflow.ll
    M llvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
    M llvm/test/Analysis/ScalarEvolution/outer_phi.ll
    M llvm/test/Analysis/ScalarEvolution/pr48225.ll
    M llvm/test/Analysis/ScalarEvolution/ptrtoint.ll
    M llvm/test/Analysis/ScalarEvolution/symbolic_max_exit_count.ll
    M llvm/test/Analysis/ScalarEvolution/trip-count6.ll

  Log Message:
  -----------
  [SCEV] Add function to compute minium of countable exits.

This patch introduces getBackedgeTakenCountForCountableExits and a
predicated version to compute the minimum of the countable exits.

The intended use for this is loop access analysis for loops with
uncountable 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.



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