1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/test/Transforms/GVN
Alexandros Lamprineas 9775e7e456 [GVN] Don't perform scalar PRE on GEPs
Partial Redundancy Elimination of GEPs prevents CodeGenPrepare from
sinking the addressing mode computation of memory instructions back
to its uses. The problem comes from the insertion of PHIs, which
confuse CGP and make it bail.

I've autogenerated the check lines of an existing test and added a
store instruction to demonstrate the motivation behind this change.
The store is now using the gep instead of a phi.

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

llvm-svn: 348496
2018-12-06 16:11:58 +00:00
..
PRE [GVN] Don't perform scalar PRE on GEPs 2018-12-06 16:11:58 +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
assume-equal.ll
basic-undef-test.ll
basic.ll
big-endian.ll
bitcast-of-call.ll
br-identical.ll
calloc-load-removal.ll
calls-nonlocal.ll
calls-readonly.ll
commute.ll
cond_br2.ll
cond_br.ll
condprop.ll [GVN] Invalidate cached info for values replaced by equality propagation 2018-09-10 12:23:05 +00:00
crash-no-aa.ll
crash.ll
dbg-redundant-load.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
debugloc.ll
edge.ll
fence.ll [Debugify] Move debug value intrinsics closer to their operand defs 2018-06-06 19:05:42 +00:00
flags.ll
fold-const-expr.ll
fpmath.ll
funclet.ll
int_sideeffect.ll Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
invariant.group.ll Implement strip.invariant.group 2018-07-02 04:49:30 +00:00
invariant.start.ll
lifetime-simple.ll
load-constant-mem.ll
load-from-unreachable-predecessor.ll
malloc-load-removal.ll
MemdepMiscompile.ll
no_speculative_loads_with_asan.ll Hardware-assisted AddressSanitizer (llvm part). 2017-12-09 00:21:41 +00:00
no-mem-dep-info.ll [GVN] Assign new value number to calls reading memory, if there is no MemDep info. 2018-08-21 19:11:27 +00:00
noalias.ll
non-integral-pointers.ll
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 Make YAML quote forward slashes. 2018-10-12 16:31:20 +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
pr28879.ll [GVN] Avoid casting a vector of size less than 8 bits to i8 2018-06-21 21:43:20 +00:00
pr32314.ll
pr34908.ll
pr36063.ll Mark MergedLoadStoreMotion as not preserving MemDep results 2018-02-23 10:41:57 +00:00
pre-compare.ll
pre-new-inst.ll
propagate-ir-flags.ll
range.ll [Local] Keep K's range if K does not move when combining metadata. 2018-10-27 16:53:45 +00:00
readattrs.ll
rle-must-alias.ll
rle-no-phi-translate.ll
rle-nonlocal.ll
stale-loop-info.ll
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
unreachable-predecessor.ll [GVN] Invalidate cached info for phis when setting dead predecessors to undef 2018-08-23 12:48:17 +00:00
volatile-nonvolatile.ll