llvm-project/llvm/test/Transforms/NewGVN
Arthur Eubanks b493124ae2 [MemorySSA] Support invariant.group metadata
The implementation is mostly copied from MemDepAnalysis. We want to look
at all loads and stores to the same pointer operand. Bitcasts and zero
GEPs of a pointer are considered the same pointer value. We choose the
most dominating instruction.

Since updating MemorySSA with invariant.group is non-trivial, for now
handling of invariant.group is not cached in any way, so it's part of
the walker. The number of loads/stores with invariant.group is small for
now anyway. We can revisit if this actually noticeably affects compile
times.

To avoid invariant.group affecting optimized uses, we need to have
optimizeUsesInBlock() not use invariant.group in any way.

Co-authored-by: Piotr Padlewski <prazek@google.com>

Reviewed By: asbirlea, nikic, Prazek

Differential Revision: https://reviews.llvm.org/D109134
2021-09-08 13:06:12 -07:00
..
2007-07-25-DominatedLoop.ll
2007-07-25-InfiniteLoop.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
2007-07-25-Loop.ll
2007-07-25-NestedLoop.ll
2007-07-25-SinglePredecessor.ll
2007-07-26-InterlockingLoops.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
2007-07-26-NonRedundant.ll
2007-07-26-PhiErasure.ll [NewGVN] Remove unused check-prefixes 2020-11-09 12:18:19 +00:00
2007-07-30-PredIDom.ll
2007-07-31-NoDomInherit-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
2007-07-31-RedundantPhi.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
2008-02-12-UndefLoad-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
2008-02-13-NewPHI.ll
2008-07-02-Unreachable.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
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 OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
2009-07-13-MemDepSortFail.ll
2009-11-12-MemDepMallocBitCast.ll
2010-03-31-RedundantPHIs.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
2010-05-08-OneBit.ll
2010-11-13-Simplify.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
2011-04-27-phioperands.ll
2011-07-07-MatchIntrinsicExtract.ll
2011-09-07-TypeIdFor.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
2012-05-22-PreCrash.ll
2016-08-30-MaskedScatterGather-xfail-inseltpoison.ll Precommit transform tests that have poison as insertelement's placeholder 2020-12-24 11:46:17 +09:00
2016-08-30-MaskedScatterGather-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
MemdepMiscompile.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
addrspacecast.ll
assume-equal-xfail.ll [NewGVN] Separate passing assume tests (NFC) 2020-07-13 21:07:03 +02:00
assume-equal.ll [PredicateInfo] Generalize processing of conditions 2021-01-20 20:40:41 +01:00
assumes.ll [PredicateInfo] Place predicate info after assume 2020-07-13 21:10:11 +02:00
basic-cyclic-opt.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
basic-undef-test.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
basic.ll
big-endian.ll [test, GVN] Fix use of var defined in CHECK-NOT 2021-04-06 17:00:21 +01:00
bitcast-of-call.ll
br-identical.ll
calloc-load-removal.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
calls-nonlocal-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
calls-readonly.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
commute.ll [GVN] add tests for >2 arg commutable intrinsics; NFC 2020-09-03 10:14:52 -04:00
compare-condition-changes.ll [NewGVN] Use performSymbolicEvaluation instead of createExpression. 2021-04-24 18:49:07 +01:00
completeness.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
cond_br.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
cond_br2-xfail.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
condprop-xfail.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
condprop.ll [PredicateInfo] Handle logical and/or 2021-01-20 21:03:07 +01:00
crash-no-aa.ll [BasicAA] Rename -disable-basicaa to -disable-basic-aa to be consistent with the canonical name "basic-aa" 2020-06-26 20:55:44 -07:00
crash.ll
cyclic-phi-handling.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
dbg-redundant-load.ll
deadstore.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
debugloc-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
edge.ll
eliminate-callsite-inline.ll [Local] Treat calls that may not return as being alive. 2021-01-23 16:05:14 +00:00
eliminate-ssacopy.ll
equivalent-phi.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
fence-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
flags-simplify.ll
flags.ll
fold-const-expr.ll
fpmath.ll
funclet.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
int_sideeffect.ll
invariant.group.ll [MemorySSA] Support invariant.group metadata 2021-09-08 13:06:12 -07:00
invariant.start.ll
lifetime-simple.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
load-constant-mem.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
load-from-unreachable-predecessor.ll
loadforward.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
malloc-load-removal.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
memory-handling.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
metadata-nonnull.ll Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
metadata-simplify.ll
no_speculative_loads_with_asan.ll
noalias.ll [MemCpyOpt] Correctly merge alias scopes during call slot optimization 2020-12-03 09:23:37 -08:00
non-integral-pointers.ll
non-local-offset.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
nonescaping-malloc-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
null-aliases-nothing.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
opt-remarks-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
pair_jumpthread.ll
phi-edge-handling.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
phi-of-ops-move-block.ll
phi-of-ops-simplification-dependencies.ll [NewGVN] Use ExprResult to add extra predicate users. 2021-04-25 11:13:32 +01:00
phi-of-ops-simplified-to-existing-value-then-changes-again.ll [NewGVN] Add phi-of-ops operands if no real PHI is created. 2021-04-15 08:25:10 +01:00
phi-translate-partial-alias.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
pr10820-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
pr12979.ll
pr14166-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
pr17732.ll
pr17852.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
pr24397.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
pr24426.ll
pr25440.ll
pr28562.ll
pr31472.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
pr31483.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
pr31491.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
pr31501.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
pr31573.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
pr31594.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
pr31613.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
pr31682.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
pr31758.ll
pr32403.ll
pr32607.ll
pr32836.ll
pr32838.ll
pr32845.ll
pr32852.ll
pr32897.ll
pr32934.ll
pr32945.ll
pr32952.ll
pr33014.ll
pr33086.ll
pr33116.ll
pr33165-distribute-undef.ll [InstSimplify/NewGVN] Add option to control the use of undef. 2020-08-09 19:16:56 +01:00
pr33185.ll
pr33187.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
pr33196.ll [NewPM] Add -basic-aa to pr33196.ll 2020-07-02 11:27:52 -07:00
pr33204.ll StoreInst should store Align, not MaybeAlign 2020-05-15 12:26:58 -07:00
pr33305.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
pr33367.ll AllocaInst should store Align instead of MaybeAlign. 2020-05-16 14:53:16 -07:00
pr33432.ll
pr33461.ll
pr33720.ll StoreInst should store Align, not MaybeAlign 2020-05-15 12:26:58 -07:00
pr34135.ll
pr34430.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
pr34452.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
pr35074.ll
pr35125.ll
pr43441.ll
pre-compare.ll
pre-new-inst-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
predicates.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
preserve-metadata-for-predicate-replacements.ll [NewGVN] Add test to ensure metadata is preserved for ssa_copy (NFC) 2020-06-03 19:30:03 +01:00
propagate-ir-flags.ll
range.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
readattrs.ll
refine-stores.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
rle-must-alias-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
rle-no-phi-translate-xfail.ll [NewGVN] Rename xfail tests (NFC) 2020-07-13 21:07:03 +02:00
rle-nonlocal.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
rle.ll [DIE] Remove DeadInstEliminationPass 2020-09-21 12:12:25 -07:00
simp-to-self.ll
stale-loop-info.ll
storeoverstore.ll
tbaa.ll [NewPM][BasicAA] basicaa -> basic-aa in Transforms/{New,}GVN 2020-06-26 20:28:18 -07:00
todo-pr35074-phi-of-ops.ll [NewGVN] Require asserts for crashing tests. 2020-07-29 12:41:05 +01:00
todo-pr36335-phi-undef.ll [NewGVN] Add test cases for remaining known issues. 2020-07-28 20:33:04 +01:00
todo-pr37121-seens-this-value-a-lot.ll [NewGVN] Require asserts for crashing tests. 2020-07-29 12:41:05 +01:00
todo-pr42422-phi-of-ops.ll Fix typo in test. Thanks to Andrew Ng for spotting this! 2020-08-05 22:56:15 -07:00
unreachable_block_infinite_loop.ll
verify-memoryphi.ll
volatile-nonvolatile.ll