[LoopSimplifyCFG] Add missing MSSA edge deletion

When we create fictive switch in preheader, we should take
care about MSSA and delete edge between old preheader and
header.

llvm-svn: 354547
diff --git a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
index 55cf20a..bbf3551 100644
--- a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
@@ -355,6 +355,8 @@
     BasicBlock *NewPreheader = Preheader->splitBasicBlock(
         Preheader->getTerminator(),
         Twine(Preheader->getName()).concat("-split"));
+    if (MSSAU)
+      MSSAU->removeEdge(Preheader, L.getHeader());
     DTUpdates.push_back({DominatorTree::Delete, Preheader, L.getHeader()});
     DTUpdates.push_back({DominatorTree::Insert, NewPreheader, L.getHeader()});
     DTUpdates.push_back({DominatorTree::Insert, Preheader, NewPreheader});