RegionInfo: Update RegionInfo after a BB was split.

llvm-svn: 116398
GitOrigin-RevId: fe92a9384e092453f206c086714fb8c71e9b1731
diff --git a/lib/Analysis/RegionInfo.cpp b/lib/Analysis/RegionInfo.cpp
index 2576d4e..4a0a9a3 100644
--- a/lib/Analysis/RegionInfo.cpp
+++ b/lib/Analysis/RegionInfo.cpp
@@ -807,6 +807,19 @@
   return ret;
 }
 
+void RegionInfo::splitBlock(BasicBlock* NewBB, BasicBlock *OldBB)
+{
+  Region *R = getRegionFor(OldBB);
+  setRegionFor(NewBB, R);
+
+  while (R->getEntry() == OldBB && R->getParent()) {
+    R->replaceEntry(NewBB);
+    R = R->getParent();
+  }
+
+  setRegionFor(OldBB, R);
+}
+
 char RegionInfo::ID = 0;
 INITIALIZE_PASS_BEGIN(RegionInfo, "regions",
                 "Detect single entry single exit regions", true, true)