hanchenye-llvm-project/llvm/test/Transforms/NewGVN
Florian Hahn a6e63f176c [NewGVN] Fix handling of assumes
This patch fixes two bugs:

* test1: Previously assume(a >= 5) concluded that a == 5. That's only
         valid for assume(a == 5)...
* test2: If operands were swapped, additional users were added to the
         wrong cmp operand. This resulted in an "unsettled iteration"
         assertion failure.

Patch by Nikita Popov

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

llvm-svn: 333007
2018-05-22 17:38:22 +00:00
..
2007-07-25-DominatedLoop.ll
2007-07-25-InfiniteLoop.ll
2007-07-25-Loop.ll
2007-07-25-NestedLoop.ll
2007-07-25-SinglePredecessor.ll
2007-07-26-InterlockingLoops.ll
2007-07-26-NonRedundant.ll
2007-07-26-PhiErasure.ll
2007-07-30-PredIDom.ll
2007-07-31-NoDomInherit.ll
2007-07-31-RedundantPhi.ll
2008-02-12-UndefLoad.ll
2008-02-13-NewPHI.ll
2008-07-02-Unreachable.ll
2008-12-09-SelfRemove.ll
2008-12-12-RLE-Crash.ll
2008-12-14-rle-reanalyze.ll
2008-12-15-CacheVisited.ll
2009-01-21-SortInvalidation.ll
2009-01-22-SortInvalidation.ll
2009-03-10-PREOnVoid.ll
2009-07-13-MemDepSortFail.ll
2009-11-12-MemDepMallocBitCast.ll
2010-03-31-RedundantPHIs.ll
2010-05-08-OneBit.ll
2010-11-13-Simplify.ll
2011-04-27-phioperands.ll
2011-07-07-MatchIntrinsicExtract.ll
2011-09-07-TypeIdFor.ll
2012-05-22-PreCrash.ll
2016-08-30-MaskedScatterGather.ll Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +00:00
MemdepMiscompile.ll
assume-equal.ll
assumes.ll [NewGVN] Fix handling of assumes 2018-05-22 17:38:22 +00:00
basic-cyclic-opt.ll
basic-undef-test.ll
basic.ll NewGVN: We weren't properly simplifying selects with equal arguments due to a thinko. 2017-08-24 02:43:17 +00:00
big-endian.ll
bitcast-of-call.ll
br-identical.ll
calloc-load-removal.ll NewGVN: Handle coercion of constant stores, loads, memory insts. 2017-04-02 13:23:44 +00:00
calls-nonlocal.ll
calls-readonly.ll
commute.ll
completeness.ll NewGVN: Fix PR 34473, by not using ExactlyEqualsExpression for finding 2017-09-30 23:51:55 +00:00
cond_br.ll
cond_br2.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
condprop-xfail.ll
condprop.ll
crash-no-aa.ll
crash.ll
cyclic-phi-handling.ll
dbg-redundant-load.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
deadstore.ll
debugloc.ll
edge.ll
equivalent-phi.ll
fence.ll
flags.ll
fold-const-expr.ll [NewGVN] Now that load coercion is enable, we pass this test. 2017-08-02 19:47:37 +00:00
fpmath.ll
funclet.ll
int_sideeffect.ll Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
invariant.group.ll Dissallow non-empty metadata for invariant.group 2018-05-18 23:53:46 +00:00
invariant.start.ll
lifetime-simple.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
load-constant-mem.ll
load-from-unreachable-predecessor.ll
loadforward.ll [InstSimplify] Constant fold the new GEP in SimplifyGEPInst. 2017-06-06 10:17:14 +00:00
malloc-load-removal.ll NewGVN: Handle coercion of constant stores, loads, memory insts. 2017-04-02 13:23:44 +00:00
memory-handling.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
no_speculative_loads_with_asan.ll Hardware-assisted AddressSanitizer (llvm part). 2017-12-09 00:21:41 +00:00
noalias.ll
non-integral-pointers.ll [GVN] Don't coerce non-integral pointers to integers or vice versa 2017-04-19 18:21:09 +00:00
non-local-offset.ll
nonescaping-malloc.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
null-aliases-nothing.ll
opt-remarks.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
phi-edge-handling.ll
phi-of-ops-move-block.ll [NewGVN] Split OpPHI detection and creation. 2018-04-20 16:37:13 +00:00
phi-translate-partial-alias.ll
pr10820.ll
pr12979.ll
pr14166.ll
pr17732.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
pr17852.ll
pr24397.ll
pr24426.ll
pr25440.ll
pr28562.ll
pr31472.ll
pr31483.ll
pr31491.ll
pr31501.ll
pr31573.ll
pr31594.ll
pr31613.ll NewGVN: This patch makes memory congruence work for all types of 2017-04-06 18:52:50 +00:00
pr31682.ll
pr31758.ll
pr32403.ll NewGVN: Fix PR/33187. This is a bug caused by two things: 2017-06-06 17:15:28 +00:00
pr32607.ll [InstCombine, NewGVN] remove FP undef from tests 2018-03-08 14:57:08 +00:00
pr32836.ll [NewGVN] Update additionalUsers when we simplify to a value. 2017-05-24 02:30:24 +00:00
pr32838.ll NewGVN: Fix PR32838. 2017-05-19 20:22:20 +00:00
pr32845.ll [NewGVN] Actually check the NewGVN output. 2017-05-21 20:55:53 +00:00
pr32852.ll [NewGVN] Don't derive incorrect implications. 2017-05-01 22:26:28 +00:00
pr32897.ll NewGVN: Fix PR/33187. This is a bug caused by two things: 2017-06-06 17:15:28 +00:00
pr32934.ll [NewGVN] Re-enable test now that the nondeterminism has been fixed. 2017-05-16 22:27:06 +00:00
pr32945.ll [NewGVN] Replace predicate info leftovers. 2017-05-18 21:43:23 +00:00
pr32952.ll [NewGVN] Fix a consistent order for phi nodes operands. 2017-05-09 16:58:28 +00:00
pr33014.ll [NewGVN] Break infinite recursion in singleReachablePHIPath(). 2017-05-18 23:22:44 +00:00
pr33086.ll [NewGVN] Delete the old store when we find congruent to a load. 2017-05-19 04:06:10 +00:00
pr33116.ll NewGVN: Fix PR 33116, the memoryphi version of bug 32838. 2017-05-21 23:41:58 +00:00
pr33185.ll Fix PR/33305. caused by trying to simplify expressions in phi of ops that should have no leaders. 2017-09-02 02:18:44 +00:00
pr33187.ll NewGVN: Fix PR/33187. This is a bug caused by two things: 2017-06-06 17:15:28 +00:00
pr33196.ll [NewGVN] Fix the case where we have a phi-of-ops which goes away. 2017-08-03 21:17:49 +00:00
pr33204.ll NewGVN: Fix PR33204 - We need to add memory users when we bypass memorydefs for loads, not just when we do it for stores. 2017-08-26 07:37:11 +00:00
pr33305.ll Fix PR/33305. caused by trying to simplify expressions in phi of ops that should have no leaders. 2017-09-02 02:18:44 +00:00
pr33367.ll NewGVN: Fix PR/33367, which was causing us to delete non-copy intrinsics accidentally in some rare cases 2018-01-09 20:12:42 +00:00
pr33432.ll Fix PR/33305. caused by trying to simplify expressions in phi of ops that should have no leaders. 2017-09-02 02:18:44 +00:00
pr33461.ll NewGVN: Evaluate phi of ops expressions before creating phi node 2017-09-30 23:51:54 +00:00
pr33720.ll [NewGVN] Check for congruency of memory accesses. 2017-07-11 19:49:12 +00:00
pr34135.ll NewGVN: Make sure we don't incorrectly use PredicateInfo when doing PHI of ops 2017-09-01 19:20:18 +00:00
pr34430.ll NewGVN: Fix PR 34430 - we need to look through predicateinfo copies to detect self-cycles of phi nodes. We also need to not ignore certain types of arguments when testing whether the phi has a backedge or was originally constant. 2017-09-05 02:17:43 +00:00
pr34452.ll NewGVN: Fix PR 34452 by passing instruction all the way down when we do aggregate value simplification 2017-09-05 02:17:42 +00:00
pr35074.ll [NewGVN] Add ops as dependency if we cannot find a leader for ValueOp. 2018-04-19 15:05:47 +00:00
pr35125.ll [NewGVN] Stop assuming PHI args ordering when looking at phi-of-ops. 2017-10-30 20:20:16 +00:00
pre-compare.ll
pre-new-inst.ll
predicates.ll
propagate-ir-flags.ll
range.ll
readattrs.ll
refine-stores.ll NewGVN: This patch makes memory congruence work for all types of 2017-04-06 18:52:50 +00:00
rle-must-alias.ll
rle-no-phi-translate.ll
rle-nonlocal.ll
rle.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
stale-loop-info.ll
storeoverstore.ll NewGVN: Evaluate phi of ops expressions before creating phi node 2017-09-30 23:51:54 +00:00
tbaa.ll [Analysis] Generate more precise TBAA tags when one access encloses the other 2017-12-18 20:05:20 +00:00
unreachable_block_infinite_loop.ll
verify-memoryphi.ll [NewGVN] Fix verification of MemoryPhis in verifyMemoryCongruency(). 2017-05-15 18:50:53 +00:00
volatile-nonvolatile.ll AliasAnalysis: Be less conservative about volatile than atomic. 2017-04-07 01:28:36 +00:00