llvm-6502/test/Transforms/GVN
Eli Friedman 7c6a5a2c39 When marking a block as being unanalyzable, use "Clobber" on the terminator instead of the first instruction in the block. This is a bit of a hack; "Clobber" isn't really the right marking in the first place. memdep doesn't really have any way of properly expressing "unanalyzable" at the moment. Using it on the terminator is much less ambiguous than using it on an arbitrary instruction, though.
In the given testcase, the "Clobber" was pointing to a load, and GVN was incorrectly assuming that meant that the "Clobber" load overlapped the load being analyzed (when they are actually unrelated).

The included testcase tests both this commit and r132434.

Part two of rdar://9429882.  (r132434 was mislabeled.)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132442 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-02 00:08:52 +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 remove a trivial test, make some other tests less trivial. 2011-05-22 07:02:43 +00:00
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-02-24-NonDominatedMemcpy.ll
2008-02-26-MemCpySize.ll
2008-07-02-Unreachable.ll remove a trivial test, make some other tests less trivial. 2011-05-22 07:02:43 +00:00
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
2009-11-12-MemDepMallocBitCast.ll
2010-03-31-RedundantPHIs.ll
2010-05-08-OneBit.ll
2010-11-13-Simplify.ll
2011-06-01-NonLocalMemdepMiscompile.ll When marking a block as being unanalyzable, use "Clobber" on the terminator instead of the first instruction in the block. This is a bit of a hack; "Clobber" isn't really the right marking in the first place. memdep doesn't really have any way of properly expressing "unanalyzable" at the moment. Using it on the terminator is much less ambiguous than using it on an arbitrary instruction, though. 2011-06-02 00:08:52 +00:00
basic.ll
bitcast-of-call.ll
calls-nonlocal.ll
calls-readonly.ll
condprop.ll
crash-no-aa.ll
crash.ll fix PR9841 by having GVN not process dead loads. This was 2011-05-22 07:03:34 +00:00
dg.exp
lifetime-simple.ll
load-constant-mem.ll
load-pre-align.ll
load-pre-licm.ll
local-pre.ll
lpre-call-wrap-2.ll
lpre-call-wrap.ll
non-local-offset.ll
nonescaping-malloc.ll
null-aliases-nothing.ll
phi-translate.ll
pre-basic-add.ll
pre-load.ll
pre-single-pred.ll
preserve-tbaa.ll
rle-must-alias.ll
rle-no-phi-translate.ll
rle-nonlocal.ll
rle-phi-translate.ll
rle-semidominated.ll
rle.ll remove a trivial test, make some other tests less trivial. 2011-05-22 07:02:43 +00:00