From 9750b61e69718494dd8b2b2b8115ce9c7bc78b8b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 14 Feb 2002 18:55:22 +0000 Subject: [PATCH] * Check in fix for: llvm/test/Regression/Other/2002-02-14-LevelRaiseInstDelete.ll * Minor reformatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1760 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/ExprTypeConvert.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/Transforms/ExprTypeConvert.cpp b/lib/Transforms/ExprTypeConvert.cpp index d75a8ac68cb..b61903578dc 100644 --- a/lib/Transforms/ExprTypeConvert.cpp +++ b/lib/Transforms/ExprTypeConvert.cpp @@ -357,6 +357,10 @@ Value *ConvertExpressionToType(Value *V, const Type *Ty, ValueMapCache &VMC) { ValueMapCache::ExprMapTy::iterator VMCI = VMC.ExprMap.find(V); if (VMCI != VMC.ExprMap.end()) { assert(VMCI->second->getType() == Ty); + + if (Instruction *I = dyn_cast(V)) + ValueHandle IHandle(VMC, I); // Remove I if it is unused now! + return VMCI->second; } @@ -1084,13 +1088,11 @@ static void RecursiveDelete(ValueMapCache &Cache, Instruction *I) { #endif for (User::op_iterator OI = I->op_begin(), OE = I->op_end(); - OI != OE; ++OI) { - Instruction *U = dyn_cast(*OI); - if (U) { + OI != OE; ++OI) + if (Instruction *U = dyn_cast(*OI)) { *OI = 0; - RecursiveDelete(Cache, dyn_cast(U)); + RecursiveDelete(Cache, U); } - } I->getParent()->getInstList().remove(I);