summaryrefslogtreecommitdiffstats
path: root/polly/lib/Analysis/ScopInfo.cpp
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2015-12-13 19:21:45 +0000
committerMichael Kruse <llvm@meinersbur.de>2015-12-13 19:21:45 +0000
commita902ba6f1eb8ec7bcc651fc43c5b8ed9cd87f09d (patch)
treef88a6643b655e245f0599b185b1679013498ae70 /polly/lib/Analysis/ScopInfo.cpp
parente3ec4563b2c2c6a4447d12e06aca779ccf8d1d01 (diff)
downloadbcm5719-llvm-a902ba6f1eb8ec7bcc651fc43c5b8ed9cd87f09d.tar.gz
bcm5719-llvm-a902ba6f1eb8ec7bcc651fc43c5b8ed9cd87f09d.zip
Reuse ScopStmt::isEmpty() function
Introduce a function getStmtForRegionNode() to the corresponding ScopStmt of a RegionNode. We can use it to call the existing ScopStmt::isEmpty() function instead of searching for accesses. llvm-svn: 255465
Diffstat (limited to 'polly/lib/Analysis/ScopInfo.cpp')
-rw-r--r--polly/lib/Analysis/ScopInfo.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp
index 7e236f6c20e..9d7a4339a92 100644
--- a/polly/lib/Analysis/ScopInfo.cpp
+++ b/polly/lib/Analysis/ScopInfo.cpp
@@ -3318,15 +3318,14 @@ ScalarEvolution *Scop::getSE() const { return SE; }
bool Scop::isIgnored(RegionNode *RN) {
BasicBlock *BB = getRegionNodeBasicBlock(RN);
+ ScopStmt *Stmt = getStmtForRegionNode(RN);
+
+ // If there is no stmt, then it already has been removed.
+ if (!Stmt)
+ return true;
// Check if there are accesses contained.
- bool ContainsAccesses = false;
- if (!RN->isSubRegion())
- ContainsAccesses = getAccessFunctions(BB);
- else
- for (BasicBlock *RBB : RN->getNodeAs<Region>()->blocks())
- ContainsAccesses |= (getAccessFunctions(RBB) != nullptr);
- if (!ContainsAccesses)
+ if (Stmt->isEmpty())
return true;
// Check for reachability via non-error blocks.
@@ -3491,6 +3490,10 @@ ScopStmt *Scop::getStmtForBasicBlock(BasicBlock *BB) const {
return StmtMapIt->second;
}
+ScopStmt *Scop::getStmtForRegionNode(RegionNode *RN) const {
+ return getStmtForBasicBlock(getRegionNodeBasicBlock(RN));
+}
+
int Scop::getRelativeLoopDepth(const Loop *L) const {
Loop *OuterLoop =
L ? R.outermostLoopInRegion(const_cast<Loop *>(L)) : nullptr;
OpenPOWER on IntegriCloud