aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Grosser <grosser@fim.uni-passau.de>2010-10-13 05:54:07 +0000
committerTobias Grosser <grosser@fim.uni-passau.de>2010-10-13 05:54:07 +0000
commit9ee5c5077690a4de31e22bb9e135deb6da3f68fb (patch)
tree417ddc48a3122b236e6fa68a7edfe8a1efd7a2b2
parent6688c4a742b3d4ad511e35b463c2fe0f8abc04ab (diff)
downloadexternal_llvm-9ee5c5077690a4de31e22bb9e135deb6da3f68fb.zip
external_llvm-9ee5c5077690a4de31e22bb9e135deb6da3f68fb.tar.gz
external_llvm-9ee5c5077690a4de31e22bb9e135deb6da3f68fb.tar.bz2
RegionInfo: Allow to set the parent region of a basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116394 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Analysis/RegionInfo.h6
-rw-r--r--lib/Analysis/RegionInfo.cpp5
2 files changed, 10 insertions, 1 deletions
diff --git a/include/llvm/Analysis/RegionInfo.h b/include/llvm/Analysis/RegionInfo.h
index 7a2670f..aca1351 100644
--- a/include/llvm/Analysis/RegionInfo.h
+++ b/include/llvm/Analysis/RegionInfo.h
@@ -565,6 +565,12 @@ public:
/// region containing BB.
Region *getRegionFor(BasicBlock *BB) const;
+ /// @brief Set the smallest region that surrounds a basic block.
+ ///
+ /// @param BB The basic block surrounded by a region.
+ /// @param R The smallest region that surrounds BB.
+ void setRegionFor(BasicBlock *BB, Region *R);
+
/// @brief A shortcut for getRegionFor().
///
/// @param BB The basic block.
diff --git a/lib/Analysis/RegionInfo.cpp b/lib/Analysis/RegionInfo.cpp
index 6593f07..99c2eed 100644
--- a/lib/Analysis/RegionInfo.cpp
+++ b/lib/Analysis/RegionInfo.cpp
@@ -659,11 +659,14 @@ Region *RegionInfo::getRegionFor(BasicBlock *BB) const {
return I != BBtoRegion.end() ? I->second : 0;
}
+void RegionInfo::setRegionFor(BasicBlock *BB, Region *R) {
+ BBtoRegion[BB] = R;
+}
+
Region *RegionInfo::operator[](BasicBlock *BB) const {
return getRegionFor(BB);
}
-
BasicBlock *RegionInfo::getMaxRegionExit(BasicBlock *BB) const {
BasicBlock *Exit = NULL;