SROA: Simplify code. No functionality change.
authorBenjamin Kramer <benny.kra@googlemail.com>
Sat, 20 Oct 2012 12:04:57 +0000 (12:04 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Sat, 20 Oct 2012 12:04:57 +0000 (12:04 +0000)
llvm-svn: 166375

llvm/lib/Transforms/Scalar/SROA.cpp

index 377a625..71c6225 100644 (file)
@@ -2888,10 +2888,7 @@ private:
 
     Value *NewPtr = getAdjustedAllocaPtr(PtrBuilder, OldPtr->getType());
     // Replace the operands which were using the old pointer.
-    User::op_iterator OI = PN.op_begin(), OE = PN.op_end();
-    for (; OI != OE; ++OI)
-      if (*OI == OldPtr)
-        *OI = NewPtr;
+    std::replace(PN.op_begin(), PN.op_end(), cast<Value>(OldPtr), NewPtr);
 
     DEBUG(dbgs() << "          to: " << PN << "\n");
     deleteIfTriviallyDead(OldPtr);
@@ -3261,11 +3258,7 @@ static Type *getTypePartition(const DataLayout &TD, Type *Ty,
   }
 
   // Try to build up a sub-structure.
-  SmallVector<Type *, 4> ElementTys;
-  do {
-    ElementTys.push_back(*EI++);
-  } while (EI != EE);
-  StructType *SubTy = StructType::get(STy->getContext(), ElementTys,
+  StructType *SubTy = StructType::get(STy->getContext(), makeArrayRef(EI, EE),
                                       STy->isPacked());
   const StructLayout *SubSL = TD.getStructLayout(SubTy);
   if (Size != SubSL->getSizeInBytes())