[Polly][Isl] Stop generating isl::union_{set,map} from isl::space. NFC

This is part of an effort to reduce the differences between the custom C++ bindings used right now by polly in `lib/External/isl/include/isl/isl-noxceptions.h` and the official isl C++ interface.

Changes made:
 - Stop generating `isl::union_set` and isl::union_map` from `isl::space` and instead generate them from `isl::ctx`
 - Disable clang-format on `isl-noexceptions.h`
 - Removed `isl::union_{set,map}` generator from `isl::space` from `isl-noexceptions.h`
 - `isl-noexceptions.h` has been generated by this 87c3413b6f

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D106059
This commit is contained in:
Riccardo Mori 2021-07-19 10:47:52 +02:00
parent 3f8f292330
commit bad3ebbaae
14 changed files with 39 additions and 68 deletions

View File

@ -642,8 +642,7 @@ bool Dependences::isValidSchedule(
return true;
isl::union_map Dependences = getDependences(TYPE_RAW | TYPE_WAW | TYPE_WAR);
isl::space Space = S.getParamSpace();
isl::union_map Schedule = isl::union_map::empty(Space);
isl::union_map Schedule = isl::union_map::empty(S.getIslCtx());
isl::space ScheduleSpace;
@ -778,7 +777,7 @@ void Dependences::releaseMemory() {
isl::union_map Dependences::getDependences(int Kinds) const {
assert(hasValidDependences() && "No valid dependences available");
isl::space Space = isl::manage_copy(RAW).get_space();
isl::union_map Deps = Deps.empty(Space);
isl::union_map Deps = Deps.empty(Space.ctx());
if (Kinds & TYPE_RAW)
Deps = Deps.unite(isl::manage_copy(RAW));

View File

@ -3366,7 +3366,7 @@ bool ScopBuilder::calculateMinMaxAccess(AliasGroupTy AliasGroup,
MinMaxAccesses.reserve(AliasGroup.size());
isl::union_set Domains = scop->getDomains();
isl::union_map Accesses = isl::union_map::empty(scop->getParamSpace());
isl::union_map Accesses = isl::union_map::empty(scop->getIslCtx());
for (MemoryAccess *MA : AliasGroup)
Accesses = Accesses.add_map(MA->getAccessRelation());

View File

@ -2314,7 +2314,7 @@ isl::pw_aff Scop::getPwAffOnly(const SCEV *E, BasicBlock *BB,
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(getIslCtx());
for (ScopStmt &Stmt : *this) {
for (MemoryAccess *MA : Stmt) {

View File

@ -219,8 +219,8 @@ static MustKillsInfo computeMustKillsInfo(const Scop &S) {
KillMemIds.push_back(isl::manage(SAI->getBasePtrId().release()));
}
Info.TaggedMustKills = isl::union_map::empty(ParamSpace);
Info.MustKills = isl::union_map::empty(ParamSpace);
Info.TaggedMustKills = isl::union_map::empty(ParamSpace.ctx());
Info.MustKills = isl::union_map::empty(ParamSpace.ctx());
// Initialising KillsSchedule to `isl_set_empty` creates an empty node in the
// schedule:

View File

@ -321,7 +321,7 @@ static bool importSchedule(Scop &S, const json::Object &JScop,
return false;
}
auto ScheduleMap = isl::union_map::empty(S.getParamSpace());
auto ScheduleMap = isl::union_map::empty(S.getIslCtx());
for (ScopStmt &Stmt : S) {
if (NewSchedule.find(&Stmt) != NewSchedule.end())
ScheduleMap = ScheduleMap.add_map(NewSchedule[&Stmt]);

View File

@ -5,6 +5,8 @@
/// polyhedral compilation, ranging from dependence analysis over scheduling
/// to AST generation.
// clang-format off
#ifndef ISL_CPP_CHECKED
#define ISL_CPP_CHECKED
@ -3228,9 +3230,7 @@ public:
inline isl::union_map domain_map() const;
inline isl::union_pw_multi_aff domain_map_union_pw_multi_aff() const;
inline isl::union_map domain_product(isl::union_map umap2) const;
static inline isl::union_map empty(isl::space space);
static inline isl::union_map empty(isl::ctx ctx);
static inline isl::union_map empty_space(isl::space space);
inline isl::union_map eq_at(isl::multi_union_pw_aff mupa) const;
inline isl::map extract_map(isl::space space) const;
inline isl::union_map factor_domain() const;
@ -3708,9 +3708,7 @@ public:
inline boolean contains(const isl::space &space) const;
inline isl::union_set detect_equalities() const;
inline isl_size dim(isl::dim type) const;
static inline isl::union_set empty(isl::space space);
static inline isl::union_set empty(isl::ctx ctx);
static inline isl::union_set empty_space(isl::space space);
inline isl::set extract_set(isl::space space) const;
inline stat foreach_point(const std::function<stat(point)> &fn) const;
inline stat foreach_set(const std::function<stat(set)> &fn) const;
@ -17579,24 +17577,12 @@ isl::union_map union_map::domain_product(isl::union_map umap2) const
return manage(res);
}
isl::union_map union_map::empty(isl::space space)
{
auto res = isl_union_map_empty(space.release());
return manage(res);
}
isl::union_map union_map::empty(isl::ctx ctx)
{
auto res = isl_union_map_empty_ctx(ctx.release());
return manage(res);
}
isl::union_map union_map::empty_space(isl::space space)
{
auto res = isl_union_map_empty_space(space.release());
return manage(res);
}
isl::union_map union_map::eq_at(isl::multi_union_pw_aff mupa) const
{
auto res = isl_union_map_eq_at_multi_union_pw_aff(copy(), mupa.release());
@ -19793,24 +19779,12 @@ isl_size union_set::dim(isl::dim type) const
return res;
}
isl::union_set union_set::empty(isl::space space)
{
auto res = isl_union_set_empty(space.release());
return manage(res);
}
isl::union_set union_set::empty(isl::ctx ctx)
{
auto res = isl_union_set_empty_ctx(ctx.release());
return manage(res);
}
isl::union_set union_set::empty_space(isl::space space)
{
auto res = isl_union_set_empty_space(space.release());
return manage(res);
}
isl::set union_set::extract_set(isl::space space) const
{
auto res = isl_union_set_extract_set(get(), space.release());

View File

@ -90,7 +90,7 @@ isl::map polly::beforeScatter(isl::map Map, bool Strict) {
}
isl::union_map polly::beforeScatter(isl::union_map UMap, bool Strict) {
isl::union_map Result = isl::union_map::empty(UMap.get_space());
isl::union_map Result = isl::union_map::empty(UMap.ctx());
for (isl::map Map : UMap.get_map_list()) {
isl::map After = beforeScatter(Map, Strict);
@ -108,7 +108,7 @@ isl::map polly::afterScatter(isl::map Map, bool Strict) {
}
isl::union_map polly::afterScatter(const isl::union_map &UMap, bool Strict) {
isl::union_map Result = isl::union_map::empty(UMap.get_space());
isl::union_map Result = isl::union_map::empty(UMap.ctx());
for (isl::map Map : UMap.get_map_list()) {
isl::map After = afterScatter(Map, Strict);
Result = Result.add_map(After);
@ -188,7 +188,7 @@ isl::map polly::makeIdentityMap(const isl::set &Set, bool RestrictDomain) {
isl::union_map polly::makeIdentityMap(const isl::union_set &USet,
bool RestrictDomain) {
isl::union_map Result = isl::union_map::empty(USet.get_space());
isl::union_map Result = isl::union_map::empty(USet.ctx());
for (isl::set Set : USet.get_set_list()) {
isl::map IdentityMap = makeIdentityMap(Set, RestrictDomain);
Result = Result.add_map(IdentityMap);
@ -205,7 +205,7 @@ isl::map polly::reverseDomain(isl::map Map) {
}
isl::union_map polly::reverseDomain(const isl::union_map &UMap) {
isl::union_map Result = isl::union_map::empty(UMap.get_space());
isl::union_map Result = isl::union_map::empty(UMap.ctx());
for (isl::map Map : UMap.get_map_list()) {
auto Reversed = reverseDomain(std::move(Map));
Result = Result.add_map(Reversed);
@ -226,7 +226,7 @@ isl::set polly::shiftDim(isl::set Set, int Pos, int Amount) {
}
isl::union_set polly::shiftDim(isl::union_set USet, int Pos, int Amount) {
isl::union_set Result = isl::union_set::empty(USet.get_space());
isl::union_set Result = isl::union_set::empty(USet.ctx());
for (isl::set Set : USet.get_set_list()) {
isl::set Shifted = shiftDim(Set, Pos, Amount);
Result = Result.unite(Shifted);
@ -265,7 +265,7 @@ isl::map polly::shiftDim(isl::map Map, isl::dim Dim, int Pos, int Amount) {
isl::union_map polly::shiftDim(isl::union_map UMap, isl::dim Dim, int Pos,
int Amount) {
isl::union_map Result = isl::union_map::empty(UMap.get_space());
isl::union_map Result = isl::union_map::empty(UMap.ctx());
for (isl::map Map : UMap.get_map_list()) {
isl::map Shifted = shiftDim(Map, Dim, Pos, Amount);
@ -486,7 +486,7 @@ isl::map polly::distributeDomain(isl::map Map) {
}
isl::union_map polly::distributeDomain(isl::union_map UMap) {
isl::union_map Result = isl::union_map::empty(UMap.get_space());
isl::union_map Result = isl::union_map::empty(UMap.ctx());
for (isl::map Map : UMap.get_map_list()) {
auto Distributed = distributeDomain(Map);
Result = Result.add_map(Distributed);
@ -824,7 +824,7 @@ static isl::set expand(const isl::set &Set) {
///
/// @see expand(const isl::set)
static isl::union_set expand(const isl::union_set &USet) {
isl::union_set Expanded = isl::union_set::empty(USet.get_space());
isl::union_set Expanded = isl::union_set::empty(USet.ctx());
for (isl::set Set : USet.get_set_list()) {
isl::set SetExpanded = expand(Set);
Expanded = Expanded.unite(SetExpanded);

View File

@ -882,7 +882,7 @@ private:
simplify(WritesTarget);
// { DomainWrite[] }
auto UniverseWritesDom = isl::union_set::empty(ParamSpace);
auto UniverseWritesDom = isl::union_set::empty(ParamSpace.ctx());
for (auto *MA : S->getPHIIncomings(SAI))
UniverseWritesDom = UniverseWritesDom.unite(getDomainFor(MA));

View File

@ -116,7 +116,7 @@ isl::union_map scheduleProjectOut(const isl::union_map &UMap, unsigned first,
return UMap; /* isl_map_project_out would also reset the tuple, which should
have no effect on schedule ranges */
auto Result = isl::union_map::empty(UMap.get_space());
auto Result = isl::union_map::empty(UMap.ctx());
for (isl::map Map : UMap.get_map_list()) {
auto Outprojected = Map.project_out(isl::dim::out, first, n);
Result = Result.add_map(Outprojected);
@ -142,7 +142,7 @@ isl_size scheduleScatterDims(const isl::union_map &Schedule) {
/// Return the @p pos' range dimension, converted to an isl_union_pw_aff.
isl::union_pw_aff scheduleExtractDimAff(isl::union_map UMap, unsigned pos) {
auto SingleUMap = isl::union_map::empty(UMap.get_space());
auto SingleUMap = isl::union_map::empty(UMap.ctx());
for (isl::map Map : UMap.get_map_list()) {
unsigned MapDims = Map.range_tuple_dim();
isl::map SingleMap = Map.project_out(isl::dim::out, 0, pos);
@ -191,7 +191,7 @@ isl::union_map tryFlattenSequence(isl::union_map Schedule) {
auto AllDomains = Schedule.domain();
auto AllDomainsToNull = isl::union_pw_multi_aff(AllDomains);
auto NewSchedule = isl::union_map::empty(ParamSpace);
auto NewSchedule = isl::union_map::empty(ParamSpace.ctx());
auto Counter = isl::pw_aff(isl::local_space(ParamSpace.set_from_params()));
while (!ScatterSet.is_empty()) {

View File

@ -136,7 +136,7 @@ isl::union_map MaximalStaticExpander::filterDependences(
auto AccessDomainSet = MA->getAccessRelation().domain();
auto AccessDomainId = AccessDomainSet.get_tuple_id();
isl::union_map MapDependences = isl::union_map::empty(S.getParamSpace());
isl::union_map MapDependences = isl::union_map::empty(S.getIslCtx());
for (isl::map Map : Dependences.get_map_list()) {
// Filter out Statement to Statement dependences.
@ -184,7 +184,7 @@ bool MaximalStaticExpander::isExpandable(
auto Writes = S.getPHIIncomings(SAI);
// Get the domain where all the writes are writing to.
auto WriteDomain = isl::union_set::empty(S.getParamSpace());
auto WriteDomain = isl::union_set::empty(S.getIslCtx());
for (auto Write : Writes) {
auto MapDeps = filterDependences(S, Dependences, Write);
@ -209,8 +209,8 @@ bool MaximalStaticExpander::isExpandable(
int NumberWrites = 0;
for (ScopStmt &Stmt : S) {
auto StmtReads = isl::union_map::empty(S.getParamSpace());
auto StmtWrites = isl::union_map::empty(S.getParamSpace());
auto StmtReads = isl::union_map::empty(S.getIslCtx());
auto StmtWrites = isl::union_map::empty(S.getIslCtx());
for (MemoryAccess *MA : Stmt) {
// Check if the current MemoryAccess involved the current SAI.

View File

@ -217,8 +217,7 @@ struct ExtensionNodeRewriter
isl::schedule visitLeaf(const isl::schedule_node &Leaf,
const isl::union_set &Domain,
isl::union_map &Extensions) {
isl::ctx Ctx = Leaf.ctx();
Extensions = isl::union_map::empty(isl::space::params_alloc(Ctx, 0));
Extensions = isl::union_map::empty(Leaf.ctx());
return isl::schedule::from_domain(Domain);
}
@ -233,7 +232,7 @@ struct ExtensionNodeRewriter
isl::schedule NewChild = visit(OldChild, Domain, NewChildExtensions);
// Add the extensions to the partial schedule.
OuterExtensions = isl::union_map::empty(NewChildExtensions.get_space());
OuterExtensions = isl::union_map::empty(NewChildExtensions.ctx());
isl::union_map NewPartialSchedMap = isl::union_map::from(PartialSched);
unsigned BandDims = isl_schedule_node_band_n_member(OldNode.get());
for (isl::map Ext : NewChildExtensions.get_map_list()) {

View File

@ -248,8 +248,7 @@ void SimplifyImpl::removeEmptyDomainStmts() {
void SimplifyImpl::removeOverwrites() {
for (auto &Stmt : *S) {
isl::set Domain = Stmt.getDomain();
isl::union_map WillBeOverwritten =
isl::union_map::empty(S->getParamSpace());
isl::union_map WillBeOverwritten = isl::union_map::empty(S->getIslCtx());
SmallVector<MemoryAccess *, 32> Accesses(getAccessesInOrder(Stmt));
@ -330,7 +329,7 @@ void SimplifyImpl::coalesceWrites() {
// List of all eligible (for coalescing) writes of the future.
// { [Domain[] -> Element[]] -> [Value[] -> MemoryAccess[]] }
isl::union_map FutureWrites = isl::union_map::empty(S->getParamSpace());
isl::union_map FutureWrites = isl::union_map::empty(S->getIslCtx());
// Iterate over accesses from the last to the first.
SmallVector<MemoryAccess *, 32> Accesses(getAccessesInOrder(Stmt));
@ -444,7 +443,7 @@ void SimplifyImpl::coalesceWrites() {
TouchedAccesses.insert(MA);
}
isl::union_map NewFutureWrites =
isl::union_map::empty(FutureWrites.get_space());
isl::union_map::empty(FutureWrites.ctx());
for (isl::map FutureWrite : FutureWrites.get_map_list()) {
MemoryAccess *MA = (MemoryAccess *)FutureWrite.get_space()
.range()
@ -499,7 +498,7 @@ void SimplifyImpl::removeRedundantWrites() {
// List of element reads that still have the same value while iterating
// through the MemoryAccesses.
// { [Domain[] -> Element[]] -> Val[] }
isl::union_map Known = isl::union_map::empty(S->getParamSpace());
isl::union_map Known = isl::union_map::empty(S->getIslCtx());
SmallVector<MemoryAccess *, 32> Accesses(getAccessesInOrder(Stmt));
for (MemoryAccess *MA : Accesses) {

View File

@ -250,7 +250,7 @@ static bool isMapToUnknown(const isl::map &Map) {
}
isl::union_map polly::filterKnownValInst(const isl::union_map &UMap) {
isl::union_map Result = isl::union_map::empty(UMap.get_space());
isl::union_map Result = isl::union_map::empty(UMap.ctx());
for (isl::map Map : UMap.get_map_list()) {
if (!isMapToUnknown(Map))
Result = Result.add_map(Map);
@ -587,11 +587,11 @@ isl::union_map ZoneAlgorithm::computePerPHI(const ScopArrayInfo *SAI) {
}
isl::union_set ZoneAlgorithm::makeEmptyUnionSet() const {
return isl::union_set::empty(ParamSpace);
return isl::union_set::empty(ParamSpace.ctx());
}
isl::union_map ZoneAlgorithm::makeEmptyUnionMap() const {
return isl::union_map::empty(ParamSpace);
return isl::union_map::empty(ParamSpace.ctx());
}
void ZoneAlgorithm::collectCompatibleElts() {
@ -845,7 +845,7 @@ isl::map ZoneAlgorithm::makeValInst(Value *Val, ScopStmt *UserStmt, Loop *Scope,
static isl::union_map normalizeValInst(isl::union_map Input,
const DenseSet<PHINode *> &ComputedPHIs,
isl::union_map NormalizeMap) {
isl::union_map Result = isl::union_map::empty(Input.get_space());
isl::union_map Result = isl::union_map::empty(Input.ctx());
for (isl::map Map : Input.get_map_list()) {
isl::space Space = Map.get_space();
isl::space RangeSpace = Space.range();

View File

@ -23,7 +23,7 @@ namespace {
/// Get the universes of all spaces in @p USet.
isl::union_set unionSpace(const isl::union_set &USet) {
auto Result = isl::union_set::empty(USet.get_space());
auto Result = isl::union_set::empty(USet.ctx());
for (isl::set Set : USet.get_set_list()) {
isl::space Space = Set.get_space();
isl::set Universe = isl::set::universe(Space);
@ -45,7 +45,7 @@ void completeLifetime(isl::union_set Universe, isl::union_map OccupiedAndKnown,
if (!OccupiedAndKnown.is_null()) {
assert(Known.is_null());
Known = isl::union_map::empty(ParamSpace);
Known = isl::union_map::empty(ParamSpace.ctx());
if (Occupied.is_null())
Occupied = OccupiedAndKnown.domain();
@ -63,7 +63,7 @@ void completeLifetime(isl::union_set Universe, isl::union_map OccupiedAndKnown,
}
if (Known.is_null()) { // By default, nothing is known.
Known = isl::union_map::empty(ParamSpace);
Known = isl::union_map::empty(ParamSpace.ctx());
}
// Conditions that must hold when returning.
@ -96,7 +96,7 @@ bool checkIsConflictingNonsymmetricCommon(
isl::union_map ProposedOccupiedAndKnown, isl::union_set ProposedUnused,
isl::union_map ProposedWritten) {
// Determine universe (set of all possible domains).
auto Universe = isl::union_set::empty(isl::space::params_alloc(Ctx, 0));
auto Universe = isl::union_set::empty(Ctx);
if (!ExistingOccupiedAndKnown.is_null())
Universe = Universe.unite(ExistingOccupiedAndKnown.domain());
if (!ExistingUnused.is_null())