aboutsummaryrefslogtreecommitdiff
path: root/polly
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2017-07-17 20:58:13 +0000
committerTobias Grosser <tobias@grosser.es>2017-07-17 20:58:13 +0000
commit66e38a84be64444dc3fe75c4b3565d390ebca791 (patch)
tree2b1af376eccab1187f86ecfd8180928046f1564a /polly
parent20d28a168ec187e52f735061094b4000d6de7ea0 (diff)
downloadllvm-66e38a84be64444dc3fe75c4b3565d390ebca791.zip
llvm-66e38a84be64444dc3fe75c4b3565d390ebca791.tar.gz
llvm-66e38a84be64444dc3fe75c4b3565d390ebca791.tar.bz2
[Polly] Avoid use of `getStmtFor(BB)` in PolyhedralInfo. NFC
Summary: Since there will be no more a 1-1 correspondence between statements and basic block, we would like to get rid of the method `getStmtFor(BB)` and its uses. Here we remove one of its uses in PolyhedralInfo, as suggested by Michael Sir. Reviewers: grosser, Meinersbur, bollu Reviewed By: grosser Subscribers: pollydev Tags: #polly Differential Revision: https://reviews.llvm.org/D35300 llvm-svn: 308220
Diffstat (limited to 'polly')
-rw-r--r--polly/lib/Analysis/PolyhedralInfo.cpp35
1 files changed, 17 insertions, 18 deletions
diff --git a/polly/lib/Analysis/PolyhedralInfo.cpp b/polly/lib/Analysis/PolyhedralInfo.cpp
index 96f03a7..19ee3de 100644
--- a/polly/lib/Analysis/PolyhedralInfo.cpp
+++ b/polly/lib/Analysis/PolyhedralInfo.cpp
@@ -126,25 +126,24 @@ __isl_give isl_union_map *PolyhedralInfo::getScheduleForLoop(const Scop *S,
DEBUG(dbgs() << "Relative loop depth:\t" << CurrDim << "\n");
assert(CurrDim >= 0 && "Loop in region should have at least depth one");
- for (auto *BB : L->blocks()) {
- auto *SS = S->getStmtFor(BB);
- if (!SS)
- continue;
-
- unsigned int MaxDim = SS->getNumIterators();
- DEBUG(dbgs() << "Maximum depth of Stmt:\t" << MaxDim << "\n");
- auto *ScheduleMap = SS->getSchedule();
- assert(ScheduleMap &&
- "Schedules that contain extension nodes require special handling.");
-
- ScheduleMap = isl_map_project_out(ScheduleMap, isl_dim_out, CurrDim + 1,
- MaxDim - CurrDim - 1);
- ScheduleMap =
- isl_map_set_tuple_id(ScheduleMap, isl_dim_in, SS->getDomainId());
- Schedule =
- isl_union_map_union(Schedule, isl_union_map_from_map(ScheduleMap));
+ for (auto &SS : *S) {
+ if (L->contains(SS.getSurroundingLoop())) {
+
+ unsigned int MaxDim = SS.getNumIterators();
+ DEBUG(dbgs() << "Maximum depth of Stmt:\t" << MaxDim << "\n");
+ auto *ScheduleMap = SS.getSchedule();
+ assert(
+ ScheduleMap &&
+ "Schedules that contain extension nodes require special handling.");
+
+ ScheduleMap = isl_map_project_out(ScheduleMap, isl_dim_out, CurrDim + 1,
+ MaxDim - CurrDim - 1);
+ ScheduleMap =
+ isl_map_set_tuple_id(ScheduleMap, isl_dim_in, SS.getDomainId());
+ Schedule =
+ isl_union_map_union(Schedule, isl_union_map_from_map(ScheduleMap));
+ }
}
-
Schedule = isl_union_map_coalesce(Schedule);
return Schedule;
}