[PredicateInfo] Place predicate info after assume
authorNikita Popov <nikita.ppv@gmail.com>
Sat, 11 Jul 2020 20:48:26 +0000 (22:48 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 13 Jul 2020 19:10:11 +0000 (21:10 +0200)
commit353fa4403a06c2d86d617362b42e20ee6b3f53be
tree8b5651b150839db86fdbf9cb75496e78f3406368
parent4b626dd94944d60751af62d65a2692698520fcc2
[PredicateInfo] Place predicate info after assume

Place the ssa.copy instructions for assumes after the assume,
instead of before it. Both options are valid, but placing them
afterwards prevents assumes from being replaced with assume(true).
This fixes https://bugs.llvm.org/show_bug.cgi?id=37541 in NewGVN
and will avoid a similar issue in SCCP when we handle more
predicate infos.

Differential Revision: https://reviews.llvm.org/D83631
llvm/lib/Transforms/Utils/PredicateInfo.cpp
llvm/test/Transforms/NewGVN/assume-equal.ll
llvm/test/Transforms/NewGVN/assumes.ll
llvm/test/Transforms/Util/PredicateInfo/testandor.ll