llvm/test/Transforms/GVN
Owen Anderson b0ba0f4170 LoadPRE was not properly checking that the load it was PRE'ing post-dominated the block it was being hoisted to.
Splitting critical edges at the merge point only addressed part of the issue; it is also possible for non-post-domination
to occur when the path from the load to the merge has branches in it.  Unfortunately, full anticipation analysis is
time-consuming, so for now approximate it.  This is strictly more conservative than real anticipation, so we will miss
some cases that real PRE would allow, but we also no longer insert loads into paths where they didn't exist before. :-)

This is a very slight net positive on SPEC for me (0.5% on average).  Most of the benchmarks are largely unaffected, but
when it pays off it pays off decently: 181.mcf improves by 4.5% on my machine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114785 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-25 05:26:18 +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 stop using anders-aa 2010-03-01 20:24:50 +00:00
2008-02-24-NonDominatedMemcpy.ll
2008-02-26-MemCpySize.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-02-17-LoadPRECrash.ll
2009-03-10-PREOnVoid.ll
2009-06-17-InvalidPRE.ll
2009-07-13-MemDepSortFail.ll Correct bogus module triple specifications. 2010-08-30 10:48:29 +00:00
2009-11-12-MemDepMallocBitCast.ll
2010-03-31-RedundantPHIs.ll Re-commit my previous SSAUpdater changes. The previous version naively tried 2010-04-17 03:08:24 +00:00
2010-05-08-OneBit.ll Fix PR7052, patch by Jakub Staszak! 2010-05-08 20:01:44 +00:00
basic.ll
bitcast-of-call.ll
calls-nonlocal.ll
calls-readonly.ll
condprop.ll
crash-no-aa.ll Fix PR5744, a case where we were getting the pointer size instead of the 2009-12-10 00:11:45 +00:00
crash.ll a testcase that doesn't crash GVN but could someday. 2010-02-11 05:08:05 +00:00
dg.exp
invariant-simple.ll add newlines at the end of files. 2010-04-07 22:53:17 +00:00
lifetime-simple.ll Fix intrinsic signature in this test. 2010-04-17 21:12:55 +00:00
load-constant-mem.ll
load-pre-align.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
local-pre.ll
lpre-call-wrap-2.ll
lpre-call-wrap.ll
mixed.ll
nonescaping-malloc.ll
null-aliases-nothing.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
pre-basic-add.ll
pre-load.ll Testcase for critical edge splitting with load PRE. 2010-02-16 20:48:55 +00:00
pre-single-pred.ll LoadPRE was not properly checking that the load it was PRE'ing post-dominated the block it was being hoisted to. 2010-09-25 05:26:18 +00:00
rle-must-alias.ll I accidentally implemented this :) 2009-11-27 19:56:00 +00:00
rle-no-phi-translate.ll this test is failing, and is expected to. 2009-11-27 06:36:28 +00:00
rle-nonlocal.ll Avoid creating redundant PHIs in SSAUpdater::GetValueInMiddleOfBlock. 2010-01-27 22:01:02 +00:00
rle-phi-translate.ll fix an overly conservative caching issue that caused memdep to 2009-12-19 21:29:22 +00:00
rle-semidominated.ll
rle.ll fix PR6642, GVN forwarding from memset to load of the base of the memset. 2010-03-25 05:58:19 +00:00