[all-commits] [llvm/llvm-project] c6ca26: [IndVars] Remove monotonic checks with unknown exi...

max-azul via All-commits all-commits at lists.llvm.org
Mon Oct 26 21:36:53 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c6ca26c0bfedb8f80d6f8cb9adde25b1d6aac1c5
      https://github.com/llvm/llvm-project/commit/c6ca26c0bfedb8f80d6f8cb9adde25b1d6aac1c5
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2020-10-27 (Tue, 27 Oct 2020)

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
    M llvm/test/Transforms/IndVarSimplify/monotonic_checks.ll
    M llvm/test/Transforms/IndVarSimplify/predicated_ranges.ll

  Log Message:
  -----------
  [IndVars] Remove monotonic checks with unknown exit count

Even if the exact exit count is unknown, we can still prove that this
exit will not be taken. If we can prove that the predicate is monotonic,
fulfilled on first & last iteration, and no overflow happened in between,
then the check can be removed.

Differential Revision: https://reviews.llvm.org/D87832
Reviewed By: apilipenko




More information about the All-commits mailing list