aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ValueTracking.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2011-04-02 22:11:56 +0000
committerEli Friedman <eli.friedman@gmail.com>2011-04-02 22:11:56 +0000
commit8baa2c7ad937a4a5bea7f368cc83b4dbce5295a3 (patch)
treec10de732339b917a77a058f1076acc1e7a0acced /llvm/lib/Analysis/ValueTracking.cpp
parentcc2b8717c56c7f70aa2235bc0aab9447627290ab (diff)
downloadllvm-8baa2c7ad937a4a5bea7f368cc83b4dbce5295a3.zip
llvm-8baa2c7ad937a4a5bea7f368cc83b4dbce5295a3.tar.gz
llvm-8baa2c7ad937a4a5bea7f368cc83b4dbce5295a3.tar.bz2
Don't assume something which might be a constant expression is an instruction.
Based on PR9429, but no testcase because I can't figure out how to trigger it anymore given other changes to the relevant code. llvm-svn: 128781
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r--llvm/lib/Analysis/ValueTracking.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 0f4bfb7..a8117e6 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -729,9 +729,9 @@ bool llvm::isPowerOfTwo(Value *V, const TargetData *TD, unsigned Depth) {
// copying a sign bit (sdiv int_min, 2).
if (match(V, m_LShr(m_Value(), m_Value())) ||
match(V, m_UDiv(m_Value(), m_Value()))) {
- BinaryOperator *BO = cast<BinaryOperator>(V);
- if (BO->isExact())
- return isPowerOfTwo(BO->getOperand(0), TD, Depth);
+ PossiblyExactOperator *PEO = cast<PossiblyExactOperator>(V);
+ if (PEO->isExact())
+ return isPowerOfTwo(PEO->getOperand(0), TD, Depth);
}
return false;