[all-commits] [llvm/llvm-project] 905101: [SCEV] Use nw flag and symbolic iteration count to...

max-azul via All-commits all-commits at lists.llvm.org
Thu Oct 15 22:01:53 PDT 2020


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

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
    M llvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
    M llvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll

  Log Message:
  -----------
  [SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs

We can sharpen the range of a AddRec if we know that it does not
self-wrap and know the symbolic iteration count in the loop. If we can
evaluate the value of AddRec on the last iteration and prove that at least
one its intermediate value lies between start and end, then no-wrap flag
allows us to conclude that all of them also lie between start and end. So
the estimate of range can be improved to union of ranges of start and end.

Differential Revision: https://reviews.llvm.org/D89381
Reviewed By: efriedma




More information about the All-commits mailing list