[polly] r310219 - [ScopInfo] Move get*Writes/getReads/getAccesses to isl++
Tobias Grosser via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 6 12:22:27 PDT 2017
Author: grosser
Date: Sun Aug 6 12:22:27 2017
New Revision: 310219
URL: http://llvm.org/viewvc/llvm-project?rev=310219&view=rev
Log:
[ScopInfo] Move get*Writes/getReads/getAccesses to isl++
Modified:
polly/trunk/include/polly/ScopInfo.h
polly/trunk/lib/Analysis/ScopInfo.cpp
polly/trunk/lib/CodeGen/PPCGCodeGeneration.cpp
polly/trunk/lib/Transform/DeadCodeElimination.cpp
Modified: polly/trunk/include/polly/ScopInfo.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/ScopInfo.h?rev=310219&r1=310218&r2=310219&view=diff
==============================================================================
--- polly/trunk/include/polly/ScopInfo.h (original)
+++ polly/trunk/include/polly/ScopInfo.h Sun Aug 6 12:22:27 2017
@@ -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.
///
Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=310219&r1=310218&r2=310219&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
+++ polly/trunk/lib/Analysis/ScopInfo.cpp Sun Aug 6 12:22:27 2017
@@ -290,7 +290,7 @@ isl::space ScopArrayInfo::getSpace() con
}
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 &S
}
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::getPwAffOnl
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; });
}
Modified: polly/trunk/lib/CodeGen/PPCGCodeGeneration.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/PPCGCodeGeneration.cpp?rev=310219&r1=310218&r2=310219&view=diff
==============================================================================
--- polly/trunk/lib/CodeGen/PPCGCodeGeneration.cpp (original)
+++ polly/trunk/lib/CodeGen/PPCGCodeGeneration.cpp Sun Aug 6 12:22:27 2017
@@ -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);
Modified: polly/trunk/lib/Transform/DeadCodeElimination.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/DeadCodeElimination.cpp?rev=310219&r1=310218&r2=310219&view=diff
==============================================================================
--- polly/trunk/lib/Transform/DeadCodeElimination.cpp (original)
+++ polly/trunk/lib/Transform/DeadCodeElimination.cpp Sun Aug 6 12:22:27 2017
@@ -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(
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();
}
More information about the llvm-commits
mailing list