[ValueTracking] Remove untested / unreachable code, NFC

Right now isTruePredicate is only ever called with Pred == ICMP_SLE or
ICMP_ULE, and the ICMP_SLT and ICMP_ULT cases are dead.  This change
removes the untested dead code so that the function is not misleading.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252676 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Sanjoy Das 2015-11-11 00:16:41 +00:00
parent 6178878323
commit 0e67289a03

View File

@ -4111,31 +4111,21 @@ static bool isTruePredicate(CmpInst::Predicate Pred, Value *LHS, Value *RHS,
default:
return false;
case CmpInst::ICMP_SLT:
case CmpInst::ICMP_SLE: {
const APInt *C;
// LHS s< LHS +_{nsw} C if C > 0
// LHS s<= LHS +_{nsw} C if C >= 0
if (match(RHS, m_NSWAdd(m_Specific(LHS), m_APInt(C)))) {
if (Pred == CmpInst::ICMP_SLT)
return C->isStrictlyPositive();
if (match(RHS, m_NSWAdd(m_Specific(LHS), m_APInt(C))))
return !C->isNegative();
}
return false;
}
case CmpInst::ICMP_ULT:
case CmpInst::ICMP_ULE: {
const APInt *C;
// LHS u< LHS +_{nuw} C if C != 0
// LHS u<= LHS +_{nuw} C
if (match(RHS, m_NUWAdd(m_Specific(LHS), m_APInt(C)))) {
if (Pred == CmpInst::ICMP_ULT)
return C->isMinValue();
// LHS u<= LHS +_{nuw} C for any C
if (match(RHS, m_NUWAdd(m_Specific(LHS), m_APInt(C))))
return true;
}
// Match A to (X +_{nuw} CA) and B to (X +_{nuw} CB)
auto MatchNUWAddsToSameValue = [&](Value *A, Value *B, Value *&X,
@ -4160,11 +4150,8 @@ static bool isTruePredicate(CmpInst::Predicate Pred, Value *LHS, Value *RHS,
Value *X;
const APInt *CLHS, *CRHS;
if (MatchNUWAddsToSameValue(LHS, RHS, X, CLHS, CRHS)) {
if (Pred == CmpInst::ICMP_ULE)
return CLHS->ule(*CRHS);
return CLHS->ult(*CRHS);
}
if (MatchNUWAddsToSameValue(LHS, RHS, X, CLHS, CRHS))
return CLHS->ule(*CRHS);
return false;
}