From 5543a856ff65ddd64a07f680164673a24aa6c3a6 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 2 Aug 2007 17:23:38 +0000 Subject: [PATCH] Replacing a cast with another one does not reduce the number of casts in the input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40741 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/InstructionCombining.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 806c6e4da9b..e8430749206 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -6384,12 +6384,10 @@ static bool CanEvaluateInDifferentType(Value *V, const IntegerType *Ty, case Instruction::SExt: case Instruction::Trunc: // If this is the same kind of case as our original (e.g. zext+zext), we - // can safely eliminate it. - break; // FIXME: This causes PR1594 - if (I->getOpcode() == CastOpc) { - ++NumCastsRemoved; + // can safely replace it. Note that replacing it does not reduce the number + // of casts in the input. + if (I->getOpcode() == CastOpc) return true; - } break; default: // TODO: Can handle more cases here.