diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2011-04-02 22:11:56 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2011-04-02 22:11:56 +0000 |
| commit | 8baa2c7ad937a4a5bea7f368cc83b4dbce5295a3 (patch) | |
| tree | c10de732339b917a77a058f1076acc1e7a0acced /llvm/lib/Analysis/ValueTracking.cpp | |
| parent | cc2b8717c56c7f70aa2235bc0aab9447627290ab (diff) | |
| download | llvm-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.cpp | 6 |
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; |
