do not repeatedly dereference use_iterator

llvm-svn: 107962
This commit is contained in:
Gabor Greif 2010-07-09 12:23:50 +00:00
parent 48fb6abf13
commit 60a346d0f1
1 changed files with 4 additions and 3 deletions

View File

@ -365,10 +365,11 @@ DbgDeclareInst *InstCombiner::hasOneUsePlusDeclare(Value *V) {
return 0;
for (Value::use_iterator UI = V->use_begin(), E = V->use_end();
UI != E; ++UI) {
if (DbgDeclareInst *DI = dyn_cast<DbgDeclareInst>(UI))
User *U = *UI;
if (DbgDeclareInst *DI = dyn_cast<DbgDeclareInst>(U))
return DI;
if (isa<BitCastInst>(UI) && UI->hasOneUse()) {
if (DbgDeclareInst *DI = dyn_cast<DbgDeclareInst>(UI->use_begin()))
if (isa<BitCastInst>(U) && U->hasOneUse()) {
if (DbgDeclareInst *DI = dyn_cast<DbgDeclareInst>(U->use_begin()))
return DI;
}
}