[all-commits] [llvm/llvm-project] 69acdf: [SCEV] Prove implicaitons via AddRec start

max-azul via All-commits all-commits at lists.llvm.org
Thu Oct 1 03:10:10 PDT 2020


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

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/unittests/Analysis/ScalarEvolutionTest.cpp

  Log Message:
  -----------
  [SCEV] Prove implicaitons via AddRec start

If we know that some predicate is true for AddRec and an invariant
(w.r.t. this AddRec's loop), this fact is, in particular, true on the first
iteration. We can try to prove the facts we need using the start value.

The motivating example is proving things like
```
  isImpliedCondOperands(>=, X, 0, {X,+,-1}, 0}
```

Differential Revision: https://reviews.llvm.org/D88208
Reviewed By: reames




More information about the All-commits mailing list