Fix this crasher, and add a FIXME for a missed optimization.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90408 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/Scalar/GVN.cpp b/lib/Transforms/Scalar/GVN.cpp
index ceb57f8..cbe7add 100644
--- a/lib/Transforms/Scalar/GVN.cpp
+++ b/lib/Transforms/Scalar/GVN.cpp
@@ -1449,6 +1449,16 @@
     LoadPtr = MD->GetAvailablePHITranslatedValue(LI->getOperand(0), LoadBB,
                                                  UnavailablePred, TD, *DT);
   }
+
+  // Assign value numbers to these new instructions.
+  for (SmallVector<Instruction*, 8>::iterator NI = NewInsts.begin(),
+       NE = NewInsts.end(); NI != NE; ++NI) {
+    // FIXME: We really _ought_ to insert these value numbers into their 
+    // parent's availability map.  However, in doing so, we risk getting into
+    // ordering issues.  If a block hasn't been processed yet, we would be
+    // marking a value as AVAIL-IN, which isn't what we intend.
+    VN.lookup_or_add(*NI);
+  }
     
   // If we couldn't find or insert a computation of this phi translated value,
   // we fail PRE.