summaryrefslogtreecommitdiffstats
path: root/llvm
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
commit8352ce5f8d7a207fd4ee3130098d450efa21c5f1 (patch)
tree84b3129b1af50197bc528dc2af17deb6e803f3fd /llvm
parentf7cfb2212c6548bcb9afbafaacb5203110494b8d (diff)
downloadbcm5719-llvm-8352ce5f8d7a207fd4ee3130098d450efa21c5f1.tar.gz
bcm5719-llvm-8352ce5f8d7a207fd4ee3130098d450efa21c5f1.zip
RegionInfo: Allow to set the parent region of a basic block.
llvm-svn: 116394
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/Analysis/RegionInfo.h6
-rw-r--r--llvm/lib/Analysis/RegionInfo.cpp5
2 files changed, 10 insertions, 1 deletions
diff --git a/llvm/include/llvm/Analysis/RegionInfo.h b/llvm/include/llvm/Analysis/RegionInfo.h
index 7a2670f2c08..aca13517b57 100644
--- a/llvm/include/llvm/Analysis/RegionInfo.h
+++ b/llvm/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/llvm/lib/Analysis/RegionInfo.cpp b/llvm/lib/Analysis/RegionInfo.cpp
index 6593f07ff3c..99c2eed343d 100644
--- a/llvm/lib/Analysis/RegionInfo.cpp
+++ b/llvm/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;
OpenPOWER on IntegriCloud