[RegionInfo] Remove unused and broken function splitBlock
authorMichael Kruse <llvm@meinersbur.de>
Fri, 14 Aug 2015 20:20:00 +0000 (20:20 +0000)
committerMichael Kruse <llvm@meinersbur.de>
Fri, 14 Aug 2015 20:20:00 +0000 (20:20 +0000)
Summary:
It always makes NewBB the entry of the region instead of OldBB. This breaks if there are edges from inside the region to OldBB. OldBB is moved out of the region and hence there are exiting edges to OldBB and the region's exit block, contradicting the single-exit condition for regions.

The only use from Polly is going to be removed, hence I propose to remove the function completely.

Reviewers: grosser

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D11873

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@245092 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/RegionInfo.h
include/llvm/Analysis/RegionInfoImpl.h

index 8d1739a679b82eac8830f3ec5ec00b35e76b7647..4988386fdc82ca548532aa1f146010c15e1ebeea 100644 (file)
@@ -800,12 +800,6 @@ public:
 
   RegionT *getTopLevelRegion() const { return TopLevelRegion; }
 
-  /// @brief Update RegionInfo after a basic block was split.
-  ///
-  /// @param NewBB The basic block that was created before OldBB.
-  /// @param OldBB The old basic block.
-  void splitBlock(BlockT *NewBB, BlockT *OldBB);
-
   /// @brief Clear the Node Cache for all Regions.
   ///
   /// @see Region::clearNodeCache()
index a5157a92cf426626d26b892786af56efc93dc863..0598068d69d340b4d9c75ce7b47a97d73a74fb3b 100644 (file)
@@ -910,20 +910,6 @@ RegionInfoBase<Tr>::getCommonRegion(SmallVectorImpl<BlockT *> &BBs) const {
   return ret;
 }
 
-template <class Tr>
-void RegionInfoBase<Tr>::splitBlock(BlockT *NewBB, BlockT *OldBB) {
-  RegionT *R = getRegionFor(OldBB);
-
-  setRegionFor(NewBB, R);
-
-  while (R->getEntry() == OldBB && !R->isTopLevelRegion()) {
-    R->replaceEntry(NewBB);
-    R = R->getParent();
-  }
-
-  setRegionFor(OldBB, R);
-}
-
 template <class Tr>
 void RegionInfoBase<Tr>::calculate(FuncT &F) {
   typedef typename std::add_pointer<FuncT>::type FuncPtrT;