Enhance a bunch of transformations in instcombine to start generating
authorChris Lattner <sabre@nondot.org>
Thu, 10 Feb 2011 05:36:31 +0000 (05:36 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 10 Feb 2011 05:36:31 +0000 (05:36 +0000)
commit7a6aa1a3919af8ece92702c36dc552d81be9151a
treebf7aae31c9fef6342c9b6e785c700e6e3f7cbdec
parentb20c0b5092f11ff349855ec1e732590160aeba23
Enhance a bunch of transformations in instcombine to start generating
exact/nsw/nuw shifts and have instcombine infer them when it can prove
that the relevant properties are true for a given shift without them.

Also, a variety of refactoring to use the new patternmatch logic thrown
in for good luck.  I believe that this takes care of a bunch of related
code quality issues attached to PR8862.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125267 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
lib/Transforms/InstCombine/InstCombineShifts.cpp
test/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll
test/Transforms/InstCombine/2007-03-26-BadShiftMask.ll
test/Transforms/InstCombine/cast.ll
test/Transforms/InstCombine/exact.ll
test/Transforms/InstCombine/nsw.ll
test/Transforms/InstCombine/pr8547.ll
test/Transforms/InstCombine/sext.ll
test/Transforms/InstCombine/shift.ll
test/Transforms/InstCombine/signext.ll
test/Transforms/InstCombine/trunc.ll