diff options
| author | Tobias Grosser <tobias@grosser.es> | 2017-08-06 19:22:27 +0000 |
|---|---|---|
| committer | Tobias Grosser <tobias@grosser.es> | 2017-08-06 19:22:27 +0000 |
| commit | 5ab39ff224c9553140c5e37901e38e63b139efaa (patch) | |
| tree | 90d0a03e731d627eea3cc1735e862b48dc3cdb55 | |
| parent | b2e6598a7f1b5936d7646d7cc7abbc273179bc67 (diff) | |
| download | bcm5719-llvm-5ab39ff224c9553140c5e37901e38e63b139efaa.tar.gz bcm5719-llvm-5ab39ff224c9553140c5e37901e38e63b139efaa.zip | |
[ScopInfo] Move get*Writes/getReads/getAccesses to isl++
llvm-svn: 310219
| -rw-r--r-- | polly/include/polly/ScopInfo.h | 12 | ||||
| -rw-r--r-- | polly/lib/Analysis/ScopInfo.cpp | 30 | ||||
| -rw-r--r-- | polly/lib/CodeGen/PPCGCodeGeneration.cpp | 8 | ||||
| -rw-r--r-- | polly/lib/Transform/DeadCodeElimination.cpp | 4 |
4 files changed, 27 insertions, 27 deletions
diff --git a/polly/include/polly/ScopInfo.h b/polly/include/polly/ScopInfo.h index c44535b6a23..3b7e7d4ea24 100644 --- a/polly/include/polly/ScopInfo.h +++ b/polly/include/polly/ScopInfo.h @@ -2322,7 +2322,7 @@ private: /// of a given type. /// /// @returns The set of memory accesses in the scop that match the predicate. - __isl_give isl_union_map * + isl::union_map getAccessesOfType(std::function<bool(MemoryAccess &)> Predicate); /// @name Helper functions for printing the Scop. @@ -2888,19 +2888,19 @@ public: __isl_give isl_union_set *getDomains() const; /// Get a union map of all may-writes performed in the SCoP. - __isl_give isl_union_map *getMayWrites(); + isl::union_map getMayWrites(); /// Get a union map of all must-writes performed in the SCoP. - __isl_give isl_union_map *getMustWrites(); + isl::union_map getMustWrites(); /// Get a union map of all writes performed in the SCoP. - __isl_give isl_union_map *getWrites(); + isl::union_map getWrites(); /// Get a union map of all reads performed in the SCoP. - __isl_give isl_union_map *getReads(); + isl::union_map getReads(); /// Get a union map of all memory accesses performed in the SCoP. - __isl_give isl_union_map *getAccesses(); + isl::union_map getAccesses(); /// Get the schedule of all the statements in the SCoP. /// diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index 96b4a081efa..77d60e7e351 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -290,7 +290,7 @@ isl::space ScopArrayInfo::getSpace() const { } bool ScopArrayInfo::isReadOnly() { - isl::union_set WriteSet = give(S.getWrites()).range(); + isl::union_set WriteSet = S.getWrites().range(); isl::space Space = getSpace(); WriteSet = WriteSet.extract_set(Space); @@ -3538,7 +3538,7 @@ Scop::Scop(Region &R, ScalarEvolution &ScalarEvolution, LoopInfo &LI, } void Scop::foldSizeConstantsToRight() { - isl_union_set *Accessed = isl_union_map_range(getAccesses()); + isl_union_set *Accessed = isl_union_map_range(getAccesses().release()); for (auto Array : arrays()) { if (Array->getNumberOfDimensions() <= 1) @@ -4106,7 +4106,7 @@ void Scop::hoistInvariantLoads() { if (!PollyInvariantLoadHoisting) return; - isl::union_map Writes = give(getWrites()); + isl::union_map Writes = getWrites(); for (ScopStmt &Stmt : *this) { InvariantAccessesTy InvariantAccesses; @@ -4681,42 +4681,42 @@ __isl_give isl_pw_aff *Scop::getPwAffOnly(const SCEV *E, BasicBlock *BB) { return PWAC.first; } -__isl_give isl_union_map * +isl::union_map Scop::getAccessesOfType(std::function<bool(MemoryAccess &)> Predicate) { - isl_union_map *Accesses = isl_union_map_empty(getParamSpace()); + isl::union_map Accesses = isl::union_map::empty(isl::manage(getParamSpace())); for (ScopStmt &Stmt : *this) { for (MemoryAccess *MA : Stmt) { if (!Predicate(*MA)) continue; - isl_set *Domain = Stmt.getDomain().release(); - isl_map *AccessDomain = MA->getAccessRelation().release(); - AccessDomain = isl_map_intersect_domain(AccessDomain, Domain); - Accesses = isl_union_map_add_map(Accesses, AccessDomain); + isl::set Domain = Stmt.getDomain(); + isl::map AccessDomain = MA->getAccessRelation(); + AccessDomain = AccessDomain.intersect_domain(Domain); + Accesses = Accesses.add_map(AccessDomain); } } - return isl_union_map_coalesce(Accesses); + return Accesses.coalesce(); } -__isl_give isl_union_map *Scop::getMustWrites() { +isl::union_map Scop::getMustWrites() { return getAccessesOfType([](MemoryAccess &MA) { return MA.isMustWrite(); }); } -__isl_give isl_union_map *Scop::getMayWrites() { +isl::union_map Scop::getMayWrites() { return getAccessesOfType([](MemoryAccess &MA) { return MA.isMayWrite(); }); } -__isl_give isl_union_map *Scop::getWrites() { +isl::union_map Scop::getWrites() { return getAccessesOfType([](MemoryAccess &MA) { return MA.isWrite(); }); } -__isl_give isl_union_map *Scop::getReads() { +isl::union_map Scop::getReads() { return getAccessesOfType([](MemoryAccess &MA) { return MA.isRead(); }); } -__isl_give isl_union_map *Scop::getAccesses() { +isl::union_map Scop::getAccesses() { return getAccessesOfType([](MemoryAccess &MA) { return true; }); } diff --git a/polly/lib/CodeGen/PPCGCodeGeneration.cpp b/polly/lib/CodeGen/PPCGCodeGeneration.cpp index 41eee96803f..c03a1bdcd68 100644 --- a/polly/lib/CodeGen/PPCGCodeGeneration.cpp +++ b/polly/lib/CodeGen/PPCGCodeGeneration.cpp @@ -2636,12 +2636,12 @@ public: // TODO: investigate this further. PPCG calls collect_call_domains. PPCGScop->call = isl_union_set_from_set(S->getContext()); PPCGScop->tagged_reads = getTaggedReads(); - PPCGScop->reads = S->getReads(); + PPCGScop->reads = S->getReads().release(); PPCGScop->live_in = nullptr; PPCGScop->tagged_may_writes = getTaggedMayWrites(); - PPCGScop->may_writes = S->getWrites(); + PPCGScop->may_writes = S->getWrites().release(); PPCGScop->tagged_must_writes = getTaggedMustWrites(); - PPCGScop->must_writes = S->getMustWrites(); + PPCGScop->must_writes = S->getMustWrites().release(); PPCGScop->live_out = nullptr; PPCGScop->tagged_must_kills = KillsInfo.TaggedMustKills.take(); PPCGScop->must_kills = KillsInfo.MustKills.take(); @@ -2742,7 +2742,7 @@ public: /// @returns An isl_set describing the extent of the array. __isl_give isl_set *getExtent(ScopArrayInfo *Array) { unsigned NumDims = Array->getNumberOfDimensions(); - isl_union_map *Accesses = S->getAccesses(); + isl_union_map *Accesses = S->getAccesses().release(); Accesses = isl_union_map_intersect_domain(Accesses, S->getDomains()); Accesses = isl_union_map_detect_equalities(Accesses); isl_union_set *AccessUSet = isl_union_map_range(Accesses); diff --git a/polly/lib/Transform/DeadCodeElimination.cpp b/polly/lib/Transform/DeadCodeElimination.cpp index 2937c7b2673..a575cb63e5e 100644 --- a/polly/lib/Transform/DeadCodeElimination.cpp +++ b/polly/lib/Transform/DeadCodeElimination.cpp @@ -95,7 +95,7 @@ char DeadCodeElim::ID = 0; // no point in trying to remove them from the live-out set. isl::union_set DeadCodeElim::getLiveOut(Scop &S) { isl::union_map Schedule = isl::manage(S.getSchedule()); - isl::union_map MustWrites = isl::manage(S.getMustWrites()); + isl::union_map MustWrites = S.getMustWrites(); isl::union_map WriteIterations = MustWrites.reverse(); isl::union_map WriteTimes = WriteIterations.apply_range(Schedule); @@ -104,7 +104,7 @@ isl::union_set DeadCodeElim::getLiveOut(Scop &S) { LastWriteTimes.apply_range(Schedule.reverse()); isl::union_set Live = LastWriteIterations.range(); - isl::union_map MayWrites = isl::manage(S.getMayWrites()); + isl::union_map MayWrites = S.getMayWrites(); Live = Live.unite(MayWrites.domain()); return Live.coalesce(); } |

