aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/PredicateInfo.cpp
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2021-01-20 20:52:23 +0100
committerNikita Popov <nikita.ppv@gmail.com>2021-01-20 21:03:07 +0100
commit1c6d1e57c15b59114a05b20e667517872510aaa9 (patch)
tree7e629e897dfc0b6e61f6d88c8fbc2a862b14e5f4 /llvm/lib/Transforms/Utils/PredicateInfo.cpp
parent8fc9b6c2c560fc5945ce2115de345efb1617d59d (diff)
downloadllvm-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.cpp6
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);
}