[polly] r331122 - [DeLICM] Remove uses of isl::give
Tobias Grosser via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 28 15:11:55 PDT 2018
Author: grosser
Date: Sat Apr 28 15:11:55 2018
New Revision: 331122
URL: http://llvm.org/viewvc/llvm-project?rev=331122&view=rev
Log:
[DeLICM] Remove uses of isl::give
Modified:
polly/trunk/lib/Transform/DeLICM.cpp
polly/trunk/lib/Transform/MaximalStaticExpansion.cpp
polly/trunk/lib/Transform/ScheduleOptimizer.cpp
polly/trunk/lib/Transform/Simplify.cpp
polly/trunk/unittests/DeLICM/DeLICMTest.cpp
Modified: polly/trunk/lib/Transform/DeLICM.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/DeLICM.cpp?rev=331122&r1=331121&r2=331122&view=diff
==============================================================================
--- polly/trunk/lib/Transform/DeLICM.cpp (original)
+++ polly/trunk/lib/Transform/DeLICM.cpp Sat Apr 28 15:11:55 2018
@@ -97,13 +97,13 @@ isl::union_map computeScalarReachingOver
bool InclOverwrite) {
// { DomainWrite[] }
- auto WritesMap = give(isl_union_map_from_domain(Writes.take()));
+ auto WritesMap = isl::union_map::from_domain(Writes);
// { [Element[] -> Scatter[]] -> DomainWrite[] }
auto Result = computeReachingOverwrite(
std::move(Schedule), std::move(WritesMap), InclPrevWrite, InclOverwrite);
- return give(isl_union_map_domain_factor_range(Result.take()));
+ return Result.domain_factor_range();
}
/// Overload of computeScalarReachingOverwrite, with only one writing statement.
@@ -247,9 +247,8 @@ private:
if (!Occupied || !Unused)
return;
- assert(isl_union_set_is_disjoint(Occupied.keep(), Unused.keep()) ==
- isl_bool_true);
- auto Universe = give(isl_union_set_union(Occupied.copy(), Unused.copy()));
+ assert(Occupied.is_disjoint(Unused));
+ auto Universe = Occupied.unite(Unused);
assert(!Known.domain().is_subset(Universe).is_false());
assert(!Written.domain().is_subset(Universe).is_false());
@@ -299,12 +298,11 @@ public:
"This function is only prepared to learn occupied elements from That");
assert(!Occupied && "This function does not implement "
"`this->Occupied = "
- "give(isl_union_set_union(this->Occupied.take(), "
- "That.Occupied.copy()));`");
+ "this->Occupied.unite(That.Occupied);`");
- Unused = give(isl_union_set_subtract(Unused.take(), That.Occupied.copy()));
- Known = give(isl_union_map_union(Known.take(), That.Known.copy()));
- Written = give(isl_union_map_union(Written.take(), That.Written.take()));
+ Unused = Unused.subtract(That.Occupied);
+ Known = Known.unite(That.Known);
+ Written = Written.unite(That.Written);
checkConsistency();
}
@@ -336,12 +334,9 @@ public:
#ifndef NDEBUG
if (Existing.Occupied && Proposed.Unused) {
- auto ExistingUniverse = give(isl_union_set_union(Existing.Occupied.copy(),
- Existing.Unused.copy()));
- auto ProposedUniverse = give(isl_union_set_union(Proposed.Occupied.copy(),
- Proposed.Unused.copy()));
- assert(isl_union_set_is_equal(ExistingUniverse.keep(),
- ProposedUniverse.keep()) == isl_bool_true &&
+ auto ExistingUniverse = Existing.Occupied.unite(Existing.Unused);
+ auto ProposedUniverse = Proposed.Occupied.unite(Proposed.Unused);
+ assert(ExistingUniverse.is_equal(ProposedUniverse) &&
"Both inputs' Knowledges must be over the same universe");
}
#endif
@@ -620,8 +615,7 @@ private:
// Find all uses.
for (auto *MA : S->getValueUses(SAI))
- Reads =
- give(isl_union_set_add_set(Reads.take(), getDomainFor(MA).take()));
+ Reads = Reads.add_set(getDomainFor(MA));
// { DomainRead[] -> Scatter[] }
auto ReadSchedule = getScatterFor(Reads);
@@ -639,22 +633,19 @@ private:
auto ReachDef = getScalarReachingDefinition(DefMA->getStatement());
// { [DomainDef[] -> Scatter[]] -> DomainUse[] }
- auto Uses = give(
- isl_union_map_apply_range(isl_union_map_from_map(isl_map_range_map(
- isl_map_reverse(ReachDef.take()))),
- isl_union_map_reverse(ReadSchedule.take())));
+ auto Uses = isl::union_map(ReachDef.reverse().range_map())
+ .apply_range(ReadSchedule.reverse());
// { DomainDef[] -> Scatter[] }
auto UseScatter =
- singleton(give(isl_union_set_unwrap(isl_union_map_domain(Uses.copy()))),
- give(isl_space_map_from_domain_and_range(
- isl_set_get_space(Writes.keep()), ScatterSpace.copy())));
+ singleton(Uses.domain().unwrap(),
+ Writes.get_space().map_from_domain_and_range(ScatterSpace));
// { DomainDef[] -> Zone[] }
auto Lifetime = betweenScatter(WriteScatter, UseScatter, false, true);
// { DomainDef[] -> DomainRead[] }
- auto DefUses = give(isl_union_map_domain_factor_domain(Uses.take()));
+ auto DefUses = Uses.domain_factor_domain();
return std::make_pair(DefUses, Lifetime);
}
@@ -684,14 +675,13 @@ private:
// Where each write is mapped to, according to the suggestion.
// { DomainDef[] -> Element[] }
- auto DefTarget = give(isl_map_apply_domain(
- TargetElt.copy(), isl_map_reverse(DefSched.copy())));
+ auto DefTarget = TargetElt.apply_domain(DefSched.reverse());
simplify(DefTarget);
DEBUG(dbgs() << " Def Mapping: " << DefTarget << '\n');
auto OrigDomain = getDomainFor(DefMA);
- auto MappedDomain = give(isl_map_domain(DefTarget.copy()));
- if (!isl_set_is_subset(OrigDomain.keep(), MappedDomain.keep())) {
+ auto MappedDomain = DefTarget.domain();
+ if (!OrigDomain.is_subset(MappedDomain)) {
DEBUG(dbgs()
<< " Reject because mapping does not encompass all instances\n");
return false;
@@ -707,8 +697,7 @@ private:
DEBUG(dbgs() << " Lifetime: " << Lifetime << '\n');
/// { [Element[] -> Zone[]] }
- auto EltZone = give(
- isl_map_wrap(isl_map_apply_domain(Lifetime.copy(), DefTarget.copy())));
+ auto EltZone = Lifetime.apply_domain(DefTarget).wrap();
simplify(EltZone);
// When known knowledge is disabled, just return the unknown value. It will
@@ -722,21 +711,17 @@ private:
ValInst = makeUnknownForDomain(DefMA->getStatement());
// { DomainDef[] -> [Element[] -> Zone[]] }
- auto EltKnownTranslator =
- give(isl_map_range_product(DefTarget.copy(), Lifetime.copy()));
+ auto EltKnownTranslator = DefTarget.range_product(Lifetime);
// { [Element[] -> Zone[]] -> ValInst[] }
- auto EltKnown =
- give(isl_map_apply_domain(ValInst.copy(), EltKnownTranslator.take()));
+ auto EltKnown = ValInst.apply_domain(EltKnownTranslator);
simplify(EltKnown);
// { DomainDef[] -> [Element[] -> Scatter[]] }
- auto WrittenTranslator =
- give(isl_map_range_product(DefTarget.copy(), DefSched.take()));
+ auto WrittenTranslator = DefTarget.range_product(DefSched);
// { [Element[] -> Scatter[]] -> ValInst[] }
- auto DefEltSched =
- give(isl_map_apply_domain(ValInst.copy(), WrittenTranslator.take()));
+ auto DefEltSched = ValInst.apply_domain(WrittenTranslator);
simplify(DefEltSched);
Knowledge Proposed(EltZone, nullptr, filterKnownValInst(EltKnown),
@@ -745,9 +730,7 @@ private:
return false;
// { DomainUse[] -> Element[] }
- auto UseTarget = give(
- isl_union_map_apply_range(isl_union_map_reverse(DefUses.take()),
- isl_union_map_from_map(DefTarget.copy())));
+ auto UseTarget = DefUses.reverse().apply_range(DefTarget);
mapValue(SAI, std::move(DefTarget), std::move(UseTarget),
std::move(Lifetime), std::move(Proposed));
@@ -782,8 +765,7 @@ private:
auto Domain = getDomainFor(MA);
// { DomainUse[] -> Element[] }
- auto NewAccRel = give(isl_union_map_intersect_domain(
- UseTarget.copy(), isl_union_set_from_set(Domain.take())));
+ auto NewAccRel = UseTarget.intersect_domain(Domain);
simplify(NewAccRel);
assert(isl_union_map_n_map(NewAccRel.keep()) == 1);
@@ -836,10 +818,10 @@ private:
ValInst = makeUnknownForDomain(WriteStmt);
}
- Result = give(isl_union_map_union(Result.take(), ValInst.take()));
+ Result = Result.unite(ValInst);
}
- assert(isl_union_map_is_single_valued(Result.keep()) == isl_bool_true &&
+ assert(Result.is_single_valued() &&
"Cannot have multiple incoming values for same incoming statement");
return Result;
}
@@ -865,14 +847,13 @@ private:
auto PHISched = getScatterFor(PHIRead);
// { DomainRead[] -> Element[] }
- auto PHITarget =
- give(isl_map_apply_range(PHISched.copy(), TargetElt.copy()));
+ auto PHITarget = PHISched.apply_range(TargetElt);
simplify(PHITarget);
DEBUG(dbgs() << " Mapping: " << PHITarget << '\n');
auto OrigDomain = getDomainFor(PHIRead);
- auto MappedDomain = give(isl_map_domain(PHITarget.copy()));
- if (!isl_set_is_subset(OrigDomain.keep(), MappedDomain.keep())) {
+ auto MappedDomain = PHITarget.domain();
+ if (!OrigDomain.is_subset(MappedDomain)) {
DEBUG(dbgs()
<< " Reject because mapping does not encompass all instances\n");
return false;
@@ -882,25 +863,22 @@ private:
auto PerPHIWrites = computePerPHI(SAI);
// { DomainWrite[] -> Element[] }
- auto WritesTarget = give(isl_union_map_reverse(isl_union_map_apply_domain(
- PerPHIWrites.copy(), isl_union_map_from_map(PHITarget.copy()))));
+ auto WritesTarget = PerPHIWrites.apply_domain(PHITarget).reverse();
simplify(WritesTarget);
// { DomainWrite[] }
- auto UniverseWritesDom = give(isl_union_set_empty(ParamSpace.copy()));
+ auto UniverseWritesDom = isl::union_set::empty(ParamSpace);
for (auto *MA : S->getPHIIncomings(SAI))
- UniverseWritesDom = give(isl_union_set_add_set(UniverseWritesDom.take(),
- getDomainFor(MA).take()));
+ UniverseWritesDom = UniverseWritesDom.add_set(getDomainFor(MA));
auto RelevantWritesTarget = WritesTarget;
if (DelicmOverapproximateWrites)
WritesTarget = expandMapping(WritesTarget, UniverseWritesDom);
- auto ExpandedWritesDom = give(isl_union_map_domain(WritesTarget.copy()));
+ auto ExpandedWritesDom = WritesTarget.domain();
if (!DelicmPartialWrites &&
- !isl_union_set_is_subset(UniverseWritesDom.keep(),
- ExpandedWritesDom.keep())) {
+ !UniverseWritesDom.is_subset(ExpandedWritesDom)) {
DEBUG(dbgs() << " Reject because did not find PHI write mapping for "
"all instances\n");
if (DelicmOverapproximateWrites)
@@ -908,15 +886,13 @@ private:
<< '\n');
DEBUG(dbgs() << " Deduced Mapping: " << WritesTarget << '\n');
DEBUG(dbgs() << " Missing instances: "
- << give(isl_union_set_subtract(UniverseWritesDom.copy(),
- ExpandedWritesDom.copy()))
- << '\n');
+ << UniverseWritesDom.subtract(ExpandedWritesDom) << '\n');
return false;
}
// { DomainRead[] -> Scatter[] }
- auto PerPHIWriteScatter = give(isl_map_from_union_map(
- isl_union_map_apply_range(PerPHIWrites.copy(), Schedule.copy())));
+ auto PerPHIWriteScatter =
+ isl::map::from_union_map(PerPHIWrites.apply_range(Schedule));
// { DomainRead[] -> Zone[] }
auto Lifetime = betweenScatter(PerPHIWriteScatter, PHISched, false, true);
@@ -924,35 +900,30 @@ private:
DEBUG(dbgs() << " Lifetime: " << Lifetime << "\n");
// { DomainWrite[] -> Zone[] }
- auto WriteLifetime = give(isl_union_map_apply_domain(
- isl_union_map_from_map(Lifetime.copy()), PerPHIWrites.copy()));
+ auto WriteLifetime = isl::union_map(Lifetime).apply_domain(PerPHIWrites);
// { DomainWrite[] -> ValInst[] }
auto WrittenValue = determinePHIWrittenValues(SAI);
// { DomainWrite[] -> [Element[] -> Scatter[]] }
- auto WrittenTranslator =
- give(isl_union_map_range_product(WritesTarget.copy(), Schedule.copy()));
+ auto WrittenTranslator = WritesTarget.range_product(Schedule);
// { [Element[] -> Scatter[]] -> ValInst[] }
- auto Written = give(isl_union_map_apply_domain(WrittenValue.copy(),
- WrittenTranslator.copy()));
+ auto Written = WrittenValue.apply_domain(WrittenTranslator);
simplify(Written);
// { DomainWrite[] -> [Element[] -> Zone[]] }
- auto LifetimeTranslator = give(
- isl_union_map_range_product(WritesTarget.copy(), WriteLifetime.copy()));
+ auto LifetimeTranslator = WritesTarget.range_product(WriteLifetime);
// { DomainWrite[] -> ValInst[] }
auto WrittenKnownValue = filterKnownValInst(WrittenValue);
// { [Element[] -> Zone[]] -> ValInst[] }
- auto EltLifetimeInst = give(isl_union_map_apply_domain(
- WrittenKnownValue.copy(), LifetimeTranslator.copy()));
+ auto EltLifetimeInst = WrittenKnownValue.apply_domain(LifetimeTranslator);
simplify(EltLifetimeInst);
// { [Element[] -> Zone[] }
- auto Occupied = give(isl_union_map_range(LifetimeTranslator.copy()));
+ auto Occupied = LifetimeTranslator.range();
simplify(Occupied);
Knowledge Proposed(Occupied, nullptr, EltLifetimeInst, Written);
@@ -990,8 +961,7 @@ private:
auto Domain = getDomainFor(MA);
// { DomainWrite[] -> Element[] }
- auto NewAccRel = give(isl_union_map_intersect_domain(
- WriteTarget.copy(), isl_union_set_from_set(Domain.copy())));
+ auto NewAccRel = WriteTarget.intersect_domain(Domain);
simplify(NewAccRel);
isl::space NewAccRelSpace =
@@ -1038,8 +1008,7 @@ private:
// { Zone[] -> Element[] }
// Use the target store's write location as a suggestion to map scalars to.
- auto EltTarget =
- give(isl_map_apply_range(Target.take(), TargetAccRel.take()));
+ auto EltTarget = Target.apply_range(TargetAccRel);
simplify(EltTarget);
DEBUG(dbgs() << " Target mapping is " << EltTarget << '\n');
@@ -1147,7 +1116,7 @@ private:
auto ArrayUnused = computeArrayUnused(Schedule, AllMustWrites, AllReads,
false, false, true);
- auto Result = give(isl_union_map_wrap(ArrayUnused.copy()));
+ auto Result = ArrayUnused.wrap();
simplify(Result);
return Result;
@@ -1176,8 +1145,8 @@ private:
/// different elements are accessed.
bool isScalarAccess(MemoryAccess *MA) {
auto Map = getAccessRelationFor(MA);
- auto Set = give(isl_map_range(Map.take()));
- return isl_set_is_singleton(Set.keep()) == isl_bool_true;
+ auto Set = Map.range();
+ return Set.is_singleton();
}
/// Print mapping statistics to @p OS.
Modified: polly/trunk/lib/Transform/MaximalStaticExpansion.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/MaximalStaticExpansion.cpp?rev=331122&r1=331121&r2=331122&view=diff
==============================================================================
--- polly/trunk/lib/Transform/MaximalStaticExpansion.cpp (original)
+++ polly/trunk/lib/Transform/MaximalStaticExpansion.cpp Sat Apr 28 15:11:55 2018
@@ -239,10 +239,9 @@ bool MaximalStaticExpander::isExpandable
return false;
}
- StmtReads = give(isl_union_map_union(StmtReads.take(), AccRel.take()));
+ StmtReads = StmtReads.unite(AccRel);
} else {
- StmtWrites =
- give(isl_union_map_union(StmtWrites.take(), AccRel.take()));
+ StmtWrites = StmtWrites.unite(AccRel);
}
// For now, we are not able to expand MayWrite.
@@ -445,7 +444,7 @@ bool MaximalStaticExpander::runOnScop(Sc
// Get the RAW Dependences.
auto &DI = getAnalysis<DependenceInfo>();
auto &D = DI.getDependences(Dependences::AL_Reference);
- auto Dependences = isl::give(D.getDependences(Dependences::TYPE_RAW));
+ auto Dependences = isl::manage(D.getDependences(Dependences::TYPE_RAW));
SmallVector<ScopArrayInfo *, 4> CurrentSAI(S.arrays().begin(),
S.arrays().end());
Modified: polly/trunk/lib/Transform/ScheduleOptimizer.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/ScheduleOptimizer.cpp?rev=331122&r1=331121&r2=331122&view=diff
==============================================================================
--- polly/trunk/lib/Transform/ScheduleOptimizer.cpp (original)
+++ polly/trunk/lib/Transform/ScheduleOptimizer.cpp Sat Apr 28 15:11:55 2018
@@ -1263,7 +1263,7 @@ getBandNodeWithOriginDimOrder(isl::sched
(isl::set(Domain).dim(isl::dim::set) !=
isl_schedule_node_band_n_member(Node.keep())))
return Node;
- Node = isl::manage(isl_schedule_node_delete(Node.take()));
+ Node = isl::manage(isl_schedule_node_delete(Node.copy()));
auto PartialSchedulePwAff = Domain.identity_union_pw_multi_aff();
auto PartialScheduleMultiPwAff =
isl::multi_union_pw_aff(PartialSchedulePwAff);
@@ -1519,8 +1519,8 @@ bool IslScheduleOptimizer::runOnScop(Sco
ScopsProcessed++;
walkScheduleTreeForStatistics(S.getScheduleTree(), 0);
- isl::union_map Validity = give(D.getDependences(ValidityKinds));
- isl::union_map Proximity = give(D.getDependences(ProximityKinds));
+ isl::union_map Validity = isl::manage(D.getDependences(ValidityKinds));
+ isl::union_map Proximity = isl::manage(D.getDependences(ProximityKinds));
// Simplify the dependences by removing the constraints introduced by the
// domains. This can speed up the scheduling time significantly, as large
Modified: polly/trunk/lib/Transform/Simplify.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/Simplify.cpp?rev=331122&r1=331121&r2=331122&view=diff
==============================================================================
--- polly/trunk/lib/Transform/Simplify.cpp (original)
+++ polly/trunk/lib/Transform/Simplify.cpp Sat Apr 28 15:11:55 2018
@@ -408,7 +408,7 @@ private:
std::string Name =
getIslCompatibleName("Val", V, ValueSets.size() - 1,
std::string(), UseInstructionNames);
- isl::id Id = give(isl_id_alloc(Ctx, Name.c_str(), V));
+ isl::id Id = isl::manage(isl_id_alloc(Ctx, Name.c_str(), V));
Result = isl::set::universe(
isl::space(Ctx, 0, 0).set_tuple_id(isl::dim::set, Id));
}
Modified: polly/trunk/unittests/DeLICM/DeLICMTest.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/unittests/DeLICM/DeLICMTest.cpp?rev=331122&r1=331121&r2=331122&view=diff
==============================================================================
--- polly/trunk/unittests/DeLICM/DeLICMTest.cpp (original)
+++ polly/trunk/unittests/DeLICM/DeLICMTest.cpp Sat Apr 28 15:11:55 2018
@@ -194,12 +194,12 @@ bool checkIsConflictingNonsymmetric(Know
return checkIsConflictingNonsymmetricCommon(
Ctx.get(),
- isl::manage(isl_union_map_from_domain(ExistingOccupied.take())),
+ isl::union_map::from_domain(ExistingOccupied),
ExistingUnused,
- isl::manage(isl_union_map_from_domain(ExistingWritten.take())),
- isl::manage(isl_union_map_from_domain(ProposedOccupied.take())),
+ isl::union_map::from_domain(ExistingWritten),
+ isl::union_map::(ProposedOccupied),
ProposedUnused,
- isl::manage(isl_union_map_from_domain(ProposedWritten.take())));
+ isl::union_map::from_domain(ProposedWritten));
}
bool checkIsConflicting(KnowledgeStr Existing, KnowledgeStr Proposed) {
More information about the llvm-commits
mailing list