llvm-6502/test/Transforms/GVN
Chris Lattner c89c6a964c Implement PRE of loads in the GVN pass with a pretty cheap and
straight-forward implementation.  This does not require any extra
alias analysis queries beyond what we already do for non-local loads.

Some programs really really like load PRE.  For example, SPASS triggers
this ~1000 times, ~300 times in 255.vortex, and ~1500 times on 403.gcc.

The biggest limitation to the implementation is that it does not split
critical edges.  This is a huge killer on many programs and should be
addressed after the initial patch is enabled by default.

The implementation of this should incidentally speed up rejection of 
non-local loads because it avoids creating the repl densemap in cases 
when it won't be used for fully redundant loads.

This is currently disabled by default.
Before I turn this on, I need to fix a couple of miscompilations in
the testsuite, look at compile time performance numbers, and look at
perf impact.  This is pretty close to ready though.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60408 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-02 08:16:11 +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 Use normal naming convention for test. 2008-03-22 21:08:33 +00:00
2008-02-13-NewPHI.ll
2008-02-24-NonDominatedMemcpy.ll Fix an issue where GVN would try to use an instruction before its definition when performing return slot optimization. 2008-02-25 00:40:41 +00:00
2008-02-26-MemCpySize.ll Add PR number to testcase. 2008-02-26 23:16:11 +00:00
2008-07-02-Unreachable.ll don't require GVN to work on dead values, just make the 2008-11-29 21:21:48 +00:00
basic.ll
call.ll Add testcase for PR2213. 2008-04-11 05:13:32 +00:00
dg.exp sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
dominated.ll
local-pre.ll Use the -enable-pre flag so this test doesn't fail. 2008-06-26 17:03:28 +00:00
mixed.ll
nonlocal-cse.ll Add a testcase for non-local CSE of read-only calls. 2008-05-13 08:17:44 +00:00
nonlocal.ll
pre-load.ll Implement PRE of loads in the GVN pass with a pretty cheap and 2008-12-02 08:16:11 +00:00
pre.ll Add a test for my previous PRE fix. 2008-12-02 04:25:42 +00:00
rle-must-alias.ll testcase for my previous commit. 2008-12-01 01:42:03 +00:00
semidominated.ll