[llvm] a2ed216 - [LVI] Simplify the getPredicateResult() implementation (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 4 00:18:01 PDT 2024
Author: Nikita Popov
Date: 2024-07-04T09:17:54+02:00
New Revision: a2ed21648c5faa148037f9e022fccdcb5178cbc3
URL: https://github.com/llvm/llvm-project/commit/a2ed21648c5faa148037f9e022fccdcb5178cbc3
DIFF: https://github.com/llvm/llvm-project/commit/a2ed21648c5faa148037f9e022fccdcb5178cbc3.diff
LOG: [LVI] Simplify the getPredicateResult() implementation (NFC)
By using ConstantRange::icmp().
Added:
Modified:
llvm/lib/Analysis/LazyValueInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Analysis/LazyValueInfo.cpp b/llvm/lib/Analysis/LazyValueInfo.cpp
index 4209ee4a77953..caa5b2559690a 100644
--- a/llvm/lib/Analysis/LazyValueInfo.cpp
+++ b/llvm/lib/Analysis/LazyValueInfo.cpp
@@ -1792,27 +1792,11 @@ getPredicateResult(CmpInst::Predicate Pred, Constant *C,
if (!CI) return LazyValueInfo::Unknown;
const ConstantRange &CR = Val.getConstantRange();
- if (Pred == ICmpInst::ICMP_EQ) {
- if (!CR.contains(CI->getValue()))
- return LazyValueInfo::False;
-
- if (CR.isSingleElement())
- return LazyValueInfo::True;
- } else if (Pred == ICmpInst::ICMP_NE) {
- if (!CR.contains(CI->getValue()))
- return LazyValueInfo::True;
-
- if (CR.isSingleElement())
- return LazyValueInfo::False;
- } else {
- // Handle more complex predicates.
- ConstantRange TrueValues =
- ConstantRange::makeExactICmpRegion(Pred, CI->getValue());
- if (TrueValues.contains(CR))
- return LazyValueInfo::True;
- if (TrueValues.inverse().contains(CR))
- return LazyValueInfo::False;
- }
+ ConstantRange RHS(CI->getValue());
+ if (CR.icmp(Pred, RHS))
+ return LazyValueInfo::True;
+ if (CR.icmp(CmpInst::getInversePredicate(Pred), RHS))
+ return LazyValueInfo::False;
return LazyValueInfo::Unknown;
}
More information about the llvm-commits
mailing list