1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/test/Transforms/GVN
Chris Lattner dda5ca59e2 Switch GVN and memdep to use PHITransAddr, which correctly handles
phi translation of complex expressions like &A[i+1].  This has the
following benefits:

1. The phi translation logic is all contained in its own class with
   a strong interface and verification that it is self consistent.

2. The logic is more correct than before.  Previously, if intermediate
   expressions got PHI translated, we'd miss the update and scan for
   the wrong pointers in predecessor blocks.  @phi_trans2 is a testcase
   for this.

3. We have a lot less code in memdep.

We can handle phi translation across blocks of things like @phi_trans3,
which is pretty insane :).

This patch should fix the miscompiles of 255.vortex, and I tested it 
with a bootstrap of llvm-gcc, llvm-test and dejagnu of course.

llvm-svn: 90926
2009-12-09 01:59:31 +00:00
..
2007-07-25-DominatedLoop.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-07-25-InfiniteLoop.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-07-25-Loop.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-07-25-NestedLoop.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-07-25-SinglePredecessor.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-07-26-InterlockingLoops.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-07-26-NonRedundant.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-07-26-PhiErasure.ll switch GVN to use SSAUpdater. Besides removing a lot of complexity 2009-10-10 23:50:30 +00:00
2007-07-30-PredIDom.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-07-31-NoDomInherit.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-07-31-RedundantPhi.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-02-12-UndefLoad.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-02-13-NewPHI.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-02-24-NonDominatedMemcpy.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-02-26-MemCpySize.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-07-02-Unreachable.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-12-09-SelfRemove.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-12-12-RLE-Crash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-12-14-rle-reanalyze.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-12-15-CacheVisited.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-01-21-SortInvalidation.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-01-22-SortInvalidation.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-02-17-LoadPRECrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-03-05-dbg.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-03-10-PREOnVoid.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-06-17-InvalidPRE.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-07-13-MemDepSortFail.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-11-12-MemDepMallocBitCast.ll Memory dependence analysis was incorrectly stopping to scan for stores to a pointer at bitcast uses of a malloc call. 2009-10-13 01:42:53 +00:00
basic.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
bitcast-of-call.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
calls-nonlocal.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
calls-readonly.ll Check that GVN performs this transform even if the calls 2009-10-16 12:18:23 +00:00
condprop.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
crash-2.ll Fix this crasher, and add a FIXME for a missed optimization. 2009-12-03 03:43:29 +00:00
crash.ll minimize this a bit more. 2009-12-01 07:30:01 +00:00
dg.exp sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
invariant-simple.ll Be more careful about invariance reasoning on "store" queries. Stores still need 2009-10-28 06:30:52 +00:00
lifetime-simple.ll Cleanup/remove some parts of the lifetime region handling code in memdep and GVN, 2009-12-02 07:35:19 +00:00
load-constant-mem.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
local-pre.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
lpre-call-wrap-2.ll Eliminate uses of %prcontext. 2009-09-05 11:35:16 +00:00
lpre-call-wrap.ll Eliminate uses of %prcontext. 2009-09-05 11:35:16 +00:00
mixed.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
nonescaping-malloc.ll Try to work around grep's "Binary file (standard input) matches" complaints seen 2009-11-20 09:53:25 +00:00
null-aliases-nothing.ll Default-addressspace null pointers don't alias anything. This allows 2009-11-09 19:29:11 +00:00
pre-basic-add.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
pre-load.ll add PR# 2009-11-29 01:28:58 +00:00
pre-single-pred.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +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 Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
rle-phi-translate.ll Fix phi translation in load PRE to agree with the phi 2009-11-27 06:31:14 +00:00
rle-semidominated.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
rle.ll Switch GVN and memdep to use PHITransAddr, which correctly handles 2009-12-09 01:59:31 +00:00