diff options
| author | Michael Kruse <llvm@meinersbur.de> | 2015-12-13 19:21:45 +0000 |
|---|---|---|
| committer | Michael Kruse <llvm@meinersbur.de> | 2015-12-13 19:21:45 +0000 |
| commit | a902ba6f1eb8ec7bcc651fc43c5b8ed9cd87f09d (patch) | |
| tree | f88a6643b655e245f0599b185b1679013498ae70 /polly/lib/Analysis/ScopInfo.cpp | |
| parent | e3ec4563b2c2c6a4447d12e06aca779ccf8d1d01 (diff) | |
| download | bcm5719-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.cpp | 17 |
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; |

