[llvm] 7bc6667 - [Analysis] Simplify the interface to llvm::getICmpCode. NFC
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 1 10:09:14 PST 2022
Author: Craig Topper
Date: 2022-03-01T09:53:27-08:00
New Revision: 7bc666784566187c440a213a2cd2bf98658251f5
URL: https://github.com/llvm/llvm-project/commit/7bc666784566187c440a213a2cd2bf98658251f5
DIFF: https://github.com/llvm/llvm-project/commit/7bc666784566187c440a213a2cd2bf98658251f5.diff
LOG: [Analysis] Simplify the interface to llvm::getICmpCode. NFC
Instead of passing an InstCmpInt * and a bool just pass the predicate
from the caller.
I'm considering moving the similar FCmp functions from InstCombine
over here and this makes the interface consistent with what is used
for FCmp.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D120609
Added:
Modified:
llvm/include/llvm/Analysis/CmpInstAnalysis.h
llvm/lib/Analysis/CmpInstAnalysis.cpp
llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Analysis/CmpInstAnalysis.h b/llvm/include/llvm/Analysis/CmpInstAnalysis.h
index 2bb492d1c5a15..a449353df5c92 100644
--- a/llvm/include/llvm/Analysis/CmpInstAnalysis.h
+++ b/llvm/include/llvm/Analysis/CmpInstAnalysis.h
@@ -17,7 +17,6 @@
#include "llvm/IR/InstrTypes.h"
namespace llvm {
- class ICmpInst;
class Type;
class Value;
@@ -44,7 +43,7 @@ namespace llvm {
/// 110 6 A <= B
/// 111 7 Always true
///
- unsigned getICmpCode(const ICmpInst *ICI, bool InvertPred = false);
+ unsigned getICmpCode(CmpInst::Predicate Pred);
/// This is the complement of getICmpCode. It turns a predicate code into
/// either a constant true or false or the predicate for a new ICmp.
diff --git a/llvm/lib/Analysis/CmpInstAnalysis.cpp b/llvm/lib/Analysis/CmpInstAnalysis.cpp
index 5b951980a0aad..8667daa7e4145 100644
--- a/llvm/lib/Analysis/CmpInstAnalysis.cpp
+++ b/llvm/lib/Analysis/CmpInstAnalysis.cpp
@@ -18,9 +18,7 @@
using namespace llvm;
-unsigned llvm::getICmpCode(const ICmpInst *ICI, bool InvertPred) {
- ICmpInst::Predicate Pred = InvertPred ? ICI->getInversePredicate()
- : ICI->getPredicate();
+unsigned llvm::getICmpCode(CmpInst::Predicate Pred) {
switch (Pred) {
// False -> 0
case ICmpInst::ICMP_UGT: return 1; // 001
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
index 95825d06139d0..91ef965c167a9 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
@@ -1251,7 +1251,8 @@ Value *InstCombinerImpl::foldAndOfICmps(ICmpInst *LHS, ICmpInst *RHS,
if (LHS->getOperand(0) == RHS->getOperand(0) &&
LHS->getOperand(1) == RHS->getOperand(1)) {
Value *Op0 = LHS->getOperand(0), *Op1 = LHS->getOperand(1);
- unsigned Code = getICmpCode(LHS) & getICmpCode(RHS);
+ unsigned Code =
+ getICmpCode(LHS->getPredicate()) & getICmpCode(RHS->getPredicate());
bool IsSigned = LHS->isSigned() || RHS->isSigned();
return getNewICmpValue(Code, IsSigned, Op0, Op1, Builder);
}
@@ -2570,7 +2571,8 @@ Value *InstCombinerImpl::foldOrOfICmps(ICmpInst *LHS, ICmpInst *RHS,
if (LHS0 == RHS1 && LHS1 == RHS0)
LHS->swapOperands();
if (LHS0 == RHS0 && LHS1 == RHS1) {
- unsigned Code = getICmpCode(LHS) | getICmpCode(RHS);
+ unsigned Code =
+ getICmpCode(LHS->getPredicate()) | getICmpCode(RHS->getPredicate());
bool IsSigned = LHS->isSigned() || RHS->isSigned();
return getNewICmpValue(Code, IsSigned, LHS0, LHS1, Builder);
}
@@ -3094,7 +3096,8 @@ Value *InstCombinerImpl::foldXorOfICmps(ICmpInst *LHS, ICmpInst *RHS,
LHS->getOperand(1) == RHS->getOperand(1)) {
// (icmp1 A, B) ^ (icmp2 A, B) --> (icmp3 A, B)
Value *Op0 = LHS->getOperand(0), *Op1 = LHS->getOperand(1);
- unsigned Code = getICmpCode(LHS) ^ getICmpCode(RHS);
+ unsigned Code =
+ getICmpCode(LHS->getPredicate()) ^ getICmpCode(RHS->getPredicate());
bool IsSigned = LHS->isSigned() || RHS->isSigned();
return getNewICmpValue(Code, IsSigned, Op0, Op1, Builder);
}
More information about the llvm-commits
mailing list