diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2021-01-20 20:52:23 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2021-01-20 21:03:07 +0100 |
commit | 1c6d1e57c15b59114a05b20e667517872510aaa9 (patch) | |
tree | 7e629e897dfc0b6e61f6d88c8fbc2a862b14e5f4 /llvm/lib/Transforms/Utils/PredicateInfo.cpp | |
parent | 8fc9b6c2c560fc5945ce2115de345efb1617d59d (diff) | |
download | llvm-1c6d1e57c15b59114a05b20e667517872510aaa9.zip llvm-1c6d1e57c15b59114a05b20e667517872510aaa9.tar.gz llvm-1c6d1e57c15b59114a05b20e667517872510aaa9.tar.bz2 |
[PredicateInfo] Handle logical and/or
Teach PredicateInfo to handle logical and/or the same way as
bitwise and/or. This allows handling logical and/or inside IPSCCP
and NewGVN.
Diffstat (limited to 'llvm/lib/Transforms/Utils/PredicateInfo.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/PredicateInfo.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Utils/PredicateInfo.cpp b/llvm/lib/Transforms/Utils/PredicateInfo.cpp index 9b6f7d3..3312a6f 100644 --- a/llvm/lib/Transforms/Utils/PredicateInfo.cpp +++ b/llvm/lib/Transforms/Utils/PredicateInfo.cpp @@ -416,7 +416,7 @@ void PredicateInfoBuilder::processAssume( break; Value *Op0, *Op1; - if (match(Cond, m_And(m_Value(Op0), m_Value(Op1)))) { + if (match(Cond, m_LogicalAnd(m_Value(Op0), m_Value(Op1)))) { Worklist.push_back(Op1); Worklist.push_back(Op0); } @@ -461,8 +461,8 @@ void PredicateInfoBuilder::processBranch( break; Value *Op0, *Op1; - if (TakenEdge ? match(Cond, m_And(m_Value(Op0), m_Value(Op1))) - : match(Cond, m_Or(m_Value(Op0), m_Value(Op1)))) { + if (TakenEdge ? match(Cond, m_LogicalAnd(m_Value(Op0), m_Value(Op1))) + : match(Cond, m_LogicalOr(m_Value(Op0), m_Value(Op1)))) { Worklist.push_back(Op1); Worklist.push_back(Op0); } |