Pass around Instruction* instead of Instruction& in FindInsertedValue and friends.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52318 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/Analysis/ValueTracking.h b/include/llvm/Analysis/ValueTracking.h
index df59c70..1dc1468 100644
--- a/include/llvm/Analysis/ValueTracking.h
+++ b/include/llvm/Analysis/ValueTracking.h
@@ -58,7 +58,7 @@
   Value *FindInsertedValue(Value *V,
                          const unsigned *idx_begin,
                          const unsigned *idx_end,
-                         Instruction &InsertBefore);
+                         Instruction *InsertBefore);
 } // end namespace llvm
 
 #endif
diff --git a/lib/Analysis/ValueTracking.cpp b/lib/Analysis/ValueTracking.cpp
index a3eb82d..64cdc24 100644
--- a/lib/Analysis/ValueTracking.cpp
+++ b/lib/Analysis/ValueTracking.cpp
@@ -764,7 +764,7 @@
 Value *BuildSubAggregate(Value *From, Value* To, const Type *IndexedType,
                                  SmallVector<unsigned, 10> &Idxs,
                                  unsigned IdxSkip,
-                                 Instruction &InsertBefore) {
+                                 Instruction *InsertBefore) {
   const llvm::StructType *STy = llvm::dyn_cast<llvm::StructType>(IndexedType);
   if (STy) {
     // General case, the type indexed by Idxs is a struct
@@ -782,11 +782,11 @@
     // IdxSkip indices when indexing the sub struct).
     Instruction *V = llvm::ExtractValueInst::Create(From, Idxs.begin(),
                                                     Idxs.end(), "tmp",
-                                                    &InsertBefore);
+                                                    InsertBefore);
     Instruction *Ins = llvm::InsertValueInst::Create(To, V,
                                                      Idxs.begin() + IdxSkip,
                                                      Idxs.end(), "tmp",
-                                                     &InsertBefore);
+                                                     InsertBefore);
     return Ins;
   }
 }
@@ -804,7 +804,7 @@
 //
 // Any inserted instructions are inserted before InsertBefore
 Value *BuildSubAggregate(Value *From, const unsigned *idx_begin,
-                         const unsigned *idx_end, Instruction &InsertBefore) {
+                         const unsigned *idx_end, Instruction *InsertBefore) {
   const Type *IndexedType = ExtractValueInst::getIndexedType(From->getType(),
                                                              idx_begin,
                                                              idx_end);
@@ -819,7 +819,7 @@
 /// the scalar value indexed is already around as a register, for example if it
 /// were inserted directly into the aggregrate.
 Value *llvm::FindInsertedValue(Value *V, const unsigned *idx_begin,
-                         const unsigned *idx_end, Instruction &InsertBefore) {
+                         const unsigned *idx_end, Instruction *InsertBefore) {
   // Nothing to index? Just return V then (this is useful at the end of our
   // recursion)
   if (idx_begin == idx_end)
diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp
index 42cfd8a..0878008 100644
--- a/lib/Transforms/Scalar/InstructionCombining.cpp
+++ b/lib/Transforms/Scalar/InstructionCombining.cpp
@@ -10521,7 +10521,7 @@
 Instruction *InstCombiner::visitExtractValueInst(ExtractValueInst &EV) {
   // See if we are trying to extract a known value. If so, use that instead.
   if (Value *Elt = FindInsertedValue(EV.getOperand(0), EV.idx_begin(),
-                                     EV.idx_end(), EV))
+                                     EV.idx_end(), &EV))
     return ReplaceInstUsesWith(EV, Elt);
 
   // No changes