aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erikjv@me.com>2014-03-11 09:36:48 +0000
committerErik Verbruggen <erikjv@me.com>2014-03-11 09:36:48 +0000
commite2d437148ae37c9fbafe74b61cb4a9d81388af1b (patch)
tree07a65e8ee622e1f8b8c0c9888e1f3e16b9d797ee /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parent1d95d18edd8627dc2fa706cb0d82e2a94e7f41fe (diff)
downloadllvm-e2d437148ae37c9fbafe74b61cb4a9d81388af1b.zip
llvm-e2d437148ae37c9fbafe74b61cb4a9d81388af1b.tar.gz
llvm-e2d437148ae37c9fbafe74b61cb4a9d81388af1b.tar.bz2
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. llvm-svn: 203553
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions