[all-commits] [llvm/llvm-project] a5ef2e: Return "[SCEV] Prove implicaitons via AddRec start"

max-azul via All-commits all-commits at lists.llvm.org
Wed Oct 7 21:17:25 PDT 2020


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

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    A llvm/test/Transforms/IndVarSimplify/addrec_no_exec_on_every_iteration.ll
    M llvm/unittests/Analysis/ScalarEvolutionTest.cpp

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

The initial version of the patch was reverted because it missed the check that
the predicate being proved is actually guarded by this check on 1st iteration.
If it was not executed on 1st iteration (but possibly executes after that), then
it is incorrect to use reasoning about IV start to prove it.

Added the test where the miscompile was seen. Unfortunately, my attempts
to reduce it with bugpoint did not succeed; it can further be reduced when
we understand how to do it without losing the initial bug's notion.

Returning assuming the miscompiles are now gone.

Differential Revision: https://reviews.llvm.org/D88208




More information about the All-commits mailing list