llvm-project/llvm/test/Transforms/NewGVN
Daniel Berlin 1ea5f324bd NewGVN: Fix bug exposed by PR31761
Summary:
This does not actually fix the testcase in PR31761 (discussion is
ongoing on the testcase), but does fix a bug it exposes, where stores
were not properly clobbering loads.

We accomplish this by unifying the memory equivalence infratructure
back into the normal congruence infrastructure, and then properly
destroying congruence classes when memory state leaders disappear.

Reviewers: davide

Subscribers: llvm-commits

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

llvm-svn: 293216
2017-01-26 22:21:48 +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 NewGVN: Make unreachable blocks be marked with unreachable 2017-01-26 18:30:29 +00:00
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
MemdepMiscompile.ll
assume-equal.ll [Devirtualization] MemDep returns non-local !invariant.group dependencies 2017-01-12 11:33:58 +00:00
basic-cyclic-opt.ll NewGVN: Make sure we properly lookup operand leaders while creating 2017-01-07 16:55:14 +00:00
basic-undef-test.ll
basic.ll [NewGVN] Change test to reflect difference between GVN and NewGVN. 2016-12-26 18:10:09 +00:00
big-endian.ll
bitcast-of-call.ll
br-identical.ll
calloc-load-removal.ll
calls-nonlocal.ll
calls-readonly.ll
commute.ll
cond_br.ll
cond_br2.ll
condprop.ll
crash-no-aa.ll
crash.ll
cyclic-phi-handling.ll NewGVN: Fix PR 31501. 2017-01-07 00:01:42 +00:00
dbg-redundant-load.ll
edge.ll
equivalent-phi.ll NewGVN: Add a test case for equivalent phis. 2017-01-02 19:55:13 +00:00
fence.ll [AliasAnalysis] Fences do not modify constant memory location 2017-01-20 00:21:33 +00:00
flags.ll
fold-const-expr.ll Fix some DOS-style line endings that I suspect snuck in from one of the 2016-12-23 02:02:26 +00:00
fpmath.ll
funclet.ll
invariant.group.ll [Devirtualization] MemDep returns non-local !invariant.group dependencies 2017-01-12 11:33:58 +00:00
invariant.start.ll
lifetime-simple.ll
load-constant-mem.ll
load-from-unreachable-predecessor.ll
loadforward.ll NewGVN: Fix PR 31686 and PR 31698 by rewriting store leader handling. 2017-01-20 21:04:30 +00:00
malloc-load-removal.ll
memory-handling.ll NewGVN: Make sure we properly lookup operand leaders while creating 2017-01-07 16:55:14 +00:00
no_speculative_loads_with_asan.ll
noalias.ll
non-local-offset.ll
nonescaping-malloc.ll
null-aliases-nothing.ll
opt-remarks.ll
phi-translate-partial-alias.ll
pr10820.ll
pr12979.ll
pr14166.ll
pr17732.ll
pr17852.ll
pr24397.ll
pr24426.ll
pr25440.ll
pr28562.ll
pr31472.ll Don't use our own incorrect version of isTriviallyDeadInstruction in NewGVN. Fixes PR/31472 2016-12-26 18:44:36 +00:00
pr31483.ll NewGVN: Add forgotten testcase for PR 31483 2017-01-02 19:49:20 +00:00
pr31491.ll NewGVN: Fix PR 31491 by ensuring that we touch the right instructions. Change to one based numbering so we can assert we don't cause the same bug again. 2016-12-29 22:15:12 +00:00
pr31501.ll NewGVN: Fix PR 31501. 2017-01-07 00:01:42 +00:00
pr31573.ll NewGVN: Fix PR 31573, a failure to verify memory congruency due to 2017-01-09 05:34:29 +00:00
pr31594.ll NewGVN: Fix bug exposed by PR31761 2017-01-26 22:21:48 +00:00
pr31613.ll NewGVN: Fix PR31613 test regex naming 2017-01-13 23:54:10 +00:00
pr31682.ll NewGVN: Fix PR 31682, an overactive assert. 2017-01-20 06:38:41 +00:00
pr31758.ll NewGVN: Fix output of pr31578 testcase now that we mark unreachable blocks as unreachable 2017-01-26 18:49:03 +00:00
pre-compare.ll
pre-new-inst.ll
propagate-ir-flags.ll NewGVN: Fix PR 31686 and PR 31698 by rewriting store leader handling. 2017-01-20 21:04:30 +00:00
range.ll
readattrs.ll
rle-must-alias.ll
rle-no-phi-translate.ll
rle-nonlocal.ll
stale-loop-info.ll
storeoverstore.ll Value number stores and memory states so we can detect when memory states are equivalent (IE store of same value to memory). 2016-12-25 22:23:49 +00:00
tbaa.ll
unreachable_block_infinite_loop.ll
volatile-nonvolatile.ll