diff options
| author | Dan Gohman <gohman@apple.com> | 2009-11-20 01:09:34 +0000 |
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2009-11-20 01:09:34 +0000 |
| commit | b1b77e7c3e5adb80863c97c4d24aa598c5fc1515 (patch) | |
| tree | 9307c0d5c124bd30cf40070137d5123419722b5d /lib | |
| parent | 69aaa0084163fa280cdae34786d3dd67695753c9 (diff) | |
| download | external_llvm-b1b77e7c3e5adb80863c97c4d24aa598c5fc1515.zip external_llvm-b1b77e7c3e5adb80863c97c4d24aa598c5fc1515.tar.gz external_llvm-b1b77e7c3e5adb80863c97c4d24aa598c5fc1515.tar.bz2 | |
Teach getSmallConstantTripMultiple about Shl operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89426 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Analysis/LoopInfo.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Analysis/LoopInfo.cpp b/lib/Analysis/LoopInfo.cpp index 1c614b0..4de756c 100644 --- a/lib/Analysis/LoopInfo.cpp +++ b/lib/Analysis/LoopInfo.cpp @@ -243,6 +243,11 @@ unsigned Loop::getSmallConstantTripMultiple() const { case BinaryOperator::Mul: Result = dyn_cast<ConstantInt>(BO->getOperand(1)); break; + case BinaryOperator::Shl: + if (ConstantInt *CI = dyn_cast<ConstantInt>(BO->getOperand(1))) + if (CI->getValue().getActiveBits() <= 5) + return 1u << CI->getZExtValue(); + break; default: break; } |
