From f64f9cf7ec39ae91bca84dc6ad3c8fc3343b358a Mon Sep 17 00:00:00 2001 From: Gabor Greif Date: Fri, 9 Jul 2010 16:39:02 +0000 Subject: [PATCH] cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107988 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/ScalarEvolutionExpander.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/Analysis/ScalarEvolutionExpander.cpp b/lib/Analysis/ScalarEvolutionExpander.cpp index 67b3f50e142..4a7b5f7ce5e 100644 --- a/lib/Analysis/ScalarEvolutionExpander.cpp +++ b/lib/Analysis/ScalarEvolutionExpander.cpp @@ -30,9 +30,10 @@ Value *SCEVExpander::ReuseOrCreateCast(Value *V, const Type *Ty, BasicBlock::iterator IP) { // Check to see if there is already a cast! for (Value::use_iterator UI = V->use_begin(), E = V->use_end(); - UI != E; ++UI) - if ((*UI)->getType() == Ty) - if (CastInst *CI = dyn_cast(cast(*UI))) + UI != E; ++UI) { + User *U = *UI; + if (U->getType() == Ty) + if (CastInst *CI = dyn_cast(cast(U))) if (CI->getOpcode() == Op) { // If the cast isn't where we want it, fix it. if (BasicBlock::iterator(CI) != IP) { @@ -49,6 +50,7 @@ Value *SCEVExpander::ReuseOrCreateCast(Value *V, const Type *Ty, rememberInstruction(CI); return CI; } + } // Create a new cast. Instruction *I = CastInst::Create(Op, V, Ty, V->getName(), IP); -- 2.34.1