From 0e67289a03b5492557c593edcb5fe76be5f67ff3 Mon Sep 17 00:00:00 2001 From: Sanjoy Das Date: Wed, 11 Nov 2015 00:16:41 +0000 Subject: [PATCH] [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 --- lib/Analysis/ValueTracking.cpp | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/lib/Analysis/ValueTracking.cpp b/lib/Analysis/ValueTracking.cpp index f851892d3d3..b2a1034eeaa 100644 --- a/lib/Analysis/ValueTracking.cpp +++ b/lib/Analysis/ValueTracking.cpp @@ -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; } -- 2.34.1