llvm-6502/test/Transforms/GVN
Erik Verbruggen cf5240642b GVN: merge overflow intrinsics with non-overflow instructions.
When an overflow intrinsic is followed by a non-overflow instruction,
replace the latter with an extract. For example:

  %sadd = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
  %sadd3 = add i32 %a, %b

Here the add statement will be replaced by an extract.

When an overflow intrinsic follows a non-overflow instruction, a clone
of the intrinsic is inserted before the normal instruction, which makes
it the same as the previous case. Subsequent runs of GVN can then clean
up the duplicate instructions and insert the extract.

This fixes PR8817.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203553 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-11 09:36:48 +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 Fix PR17952. 2013-11-11 22:00:23 +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-07-02-Unreachable.ll Fix PR17952. 2013-11-11 22:00:23 +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 Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2011-04-27-phioperands.ll
2011-06-01-NonLocalMemdepMiscompile.ll Use variable for register name in test 2013-11-10 00:57:17 +00:00
2011-07-07-MatchIntrinsicExtract.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2011-09-07-TypeIdFor.ll
2012-05-22-PreCrash.ll
atomic.ll
basic.ll
bitcast-of-call.ll
calls-nonlocal.ll
calls-readonly.ll
commute.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
cond_br2.ll Fix PR17952. 2013-11-11 22:00:23 +00:00
cond_br.ll Fix PR17952. 2013-11-11 22:00:23 +00:00
condprop.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
crash-no-aa.ll
crash.ll
edge.ll Catch more CHECK that can be converted to CHECK-LABEL in Transforms for easier debugging. No functionality change. 2013-07-14 01:50:49 +00:00
fpmath.ll
lifetime-simple.ll
load-constant-mem.ll
load-pre-align.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
load-pre-licm.ll
local-pre.ll Fix PR17952. 2013-11-11 22:00:23 +00:00
lpre-call-wrap-2.ll
lpre-call-wrap.ll
malloc-load-removal.ll MemoryBuiltins: Reinstate optimizing (uninitialized) loads from operator new. 2013-09-24 17:34:29 +00:00
MemdepMiscompile.ll
non-local-offset.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
nonescaping-malloc.ll
null-aliases-nothing.ll
overflow.ll GVN: merge overflow intrinsics with non-overflow instructions. 2014-03-11 09:36:48 +00:00
phi-translate-partial-alias.ll
phi-translate.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
pr10820.ll
pr12979.ll
pr14166.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
pr17732.ll IR: Do not canonicalize constant GEPs into an out-of-bounds array access 2013-11-07 22:15:53 +00:00
pr17852.ll Add a testcase for pr17852. 2013-11-11 15:37:52 +00:00
pre-basic-add.ll
pre-compare.ll
pre-load.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
pre-single-pred.ll
preserve-tbaa.ll TBAA: handle scalar TBAA format and struct-path aware TBAA format. 2013-09-27 18:34:27 +00:00
range.ll
readattrs.ll Catch more CHECK that can be converted to CHECK-LABEL in Transforms for easier debugging. No functionality change. 2013-07-14 01:50:49 +00:00
rle-must-alias.ll
rle-no-phi-translate.ll
rle-nonlocal.ll Fix PR17952. 2013-11-11 22:00:23 +00:00
rle-phi-translate.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
rle-semidominated.ll Fix PR17952. 2013-11-11 22:00:23 +00:00
rle.ll Fix PR17952. 2013-11-11 22:00:23 +00:00
tbaa.ll TBAA: handle scalar TBAA format and struct-path aware TBAA format. 2013-09-27 18:34:27 +00:00
unreachable_block_infinite_loop.ll Fix broken CHECK lines. 2014-01-11 21:06:00 +00:00