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); }