1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +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
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
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
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
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
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
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
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