[llvm] 83f895d - [SCEV] Add interface for constructing generic SCEVComparePredicate [NFC}
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 9 10:29:21 PST 2022
Author: Philip Reames
Date: 2022-02-09T10:29:04-08:00
New Revision: 83f895d95291ede8ec901b13414bf6ba9c5692c1
URL: https://github.com/llvm/llvm-project/commit/83f895d95291ede8ec901b13414bf6ba9c5692c1
DIFF: https://github.com/llvm/llvm-project/commit/83f895d95291ede8ec901b13414bf6ba9c5692c1.diff
LOG: [SCEV] Add interface for constructing generic SCEVComparePredicate [NFC}
Added:
Modified:
llvm/include/llvm/Analysis/ScalarEvolution.h
llvm/lib/Analysis/ScalarEvolution.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Analysis/ScalarEvolution.h b/llvm/include/llvm/Analysis/ScalarEvolution.h
index 51b15510a3add..7c1c7e32f5633 100644
--- a/llvm/include/llvm/Analysis/ScalarEvolution.h
+++ b/llvm/include/llvm/Analysis/ScalarEvolution.h
@@ -1167,6 +1167,8 @@ class ScalarEvolution {
}
const SCEVPredicate *getEqualPredicate(const SCEV *LHS, const SCEV *RHS);
+ const SCEVPredicate *getComparePredicate(ICmpInst::Predicate Pred,
+ const SCEV *LHS, const SCEV *RHS);
const SCEVPredicate *
getWrapPredicate(const SCEVAddRecExpr *AR,
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index fca5614c7469e..620f3bf61af3a 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -13537,19 +13537,25 @@ void ScalarEvolutionWrapperPass::getAnalysisUsage(AnalysisUsage &AU) const {
const SCEVPredicate *ScalarEvolution::getEqualPredicate(const SCEV *LHS,
const SCEV *RHS) {
+ return getComparePredicate(ICmpInst::ICMP_EQ, LHS, RHS);
+}
+
+const SCEVPredicate *
+ScalarEvolution::getComparePredicate(const ICmpInst::Predicate Pred,
+ const SCEV *LHS, const SCEV *RHS) {
FoldingSetNodeID ID;
assert(LHS->getType() == RHS->getType() &&
"Type mismatch between LHS and RHS");
// Unique this node based on the arguments
ID.AddInteger(SCEVPredicate::P_Compare);
- ID.AddInteger(ICmpInst::ICMP_EQ);
+ ID.AddInteger(Pred);
ID.AddPointer(LHS);
ID.AddPointer(RHS);
void *IP = nullptr;
if (const auto *S = UniquePreds.FindNodeOrInsertPos(ID, IP))
return S;
SCEVComparePredicate *Eq = new (SCEVAllocator)
- SCEVComparePredicate(ID.Intern(SCEVAllocator), ICmpInst::ICMP_EQ, LHS, RHS);
+ SCEVComparePredicate(ID.Intern(SCEVAllocator), Pred, LHS, RHS);
UniquePreds.InsertNode(Eq, IP);
return Eq;
}
More information about the llvm-commits
mailing list