static void fixSetToZero(isl::set Zero, isl::union_set *User) {
for (auto i : seq<isl_size>(0, Zero.tuple_dim()))
Zero = Zero.fix_si(isl::dim::set, i, 0);
- *User = User->add_set(Zero);
+ *User = User->unite(Zero);
}
/// Compute the privatization dependences for a given dependency @p Map
inline ctx get_ctx() const;
inline void dump() const;
- inline union_set add_set(set set) const;
inline union_set affine_hull() const;
inline union_set align_params(space model) const;
inline union_set apply(union_map umap) const;
}
-union_set union_set::add_set(set set) const
-{
- auto res = isl_union_set_add_set(copy(), set.release());
- return manage(res);
-}
-
union_set union_set::affine_hull() const
{
auto res = isl_union_set_affine_hull(copy());
isl::union_set Result = isl::union_set::empty(USet.get_space());
for (isl::set Set : USet.get_set_list()) {
isl::set Shifted = shiftDim(Set, Pos, Amount);
- Result = Result.add_set(Shifted);
+ Result = Result.unite(Shifted);
}
return Result;
}
isl::union_set Expanded = isl::union_set::empty(USet.get_space());
for (isl::set Set : USet.get_set_list()) {
isl::set SetExpanded = expand(Set);
- Expanded = Expanded.add_set(SetExpanded);
+ Expanded = Expanded.unite(SetExpanded);
}
return Expanded;
}
// Find all uses.
for (auto *MA : S->getValueUses(SAI))
- Reads = Reads.add_set(getDomainFor(MA));
+ Reads = Reads.unite(getDomainFor(MA));
// { DomainRead[] -> Scatter[] }
auto ReadSchedule = getScatterFor(Reads);
auto UniverseWritesDom = isl::union_set::empty(ParamSpace);
for (auto *MA : S->getPHIIncomings(SAI))
- UniverseWritesDom = UniverseWritesDom.add_set(getDomainFor(MA));
+ UniverseWritesDom = UniverseWritesDom.unite(getDomainFor(MA));
auto RelevantWritesTarget = WritesTarget;
if (DelicmOverapproximateWrites)
for (auto Write : Writes) {
auto MapDeps = filterDependences(S, Dependences, Write);
for (isl::map Map : MapDeps.get_map_list())
- WriteDomain = WriteDomain.add_set(Map.range());
+ WriteDomain = WriteDomain.unite(Map.range());
}
// For now, read from original scalar is not possible.
// To avoid solving any ILP problems, always add entire arrays instead of
// just the elements that are accessed.
auto ArrayElts = isl::set::universe(AccRelMap.get_space().range());
- AllElts = AllElts.add_set(ArrayElts);
+ AllElts = AllElts.unite(ArrayElts);
if (MA->isRead()) {
// Reject load after store to same location.
R << ", loading: " << AccRel << ")";
S->getFunction().getContext().diagnose(R);
- IncompatibleElts = IncompatibleElts.add_set(ArrayElts);
+ IncompatibleElts = IncompatibleElts.unite(ArrayElts);
}
Loads = Loads.unite(AccRel);
R << "store is in a non-affine subregion";
S->getFunction().getContext().diagnose(R);
- IncompatibleElts = IncompatibleElts.add_set(ArrayElts);
+ IncompatibleElts = IncompatibleElts.unite(ArrayElts);
}
// Do not allow more than one store to the same location.
R << ", storing: " << AccRel << ")";
S->getFunction().getContext().diagnose(R);
- IncompatibleElts = IncompatibleElts.add_set(ArrayElts);
+ IncompatibleElts = IncompatibleElts.unite(ArrayElts);
}
Stores = Stores.unite(AccRel);
for (isl::set Set : USet.get_set_list()) {
isl::space Space = Set.get_space();
isl::set Universe = isl::set::universe(Space);
- Result = Result.add_set(Universe);
+ Result = Result.unite(Universe);
}
return Result;
}
auto NewSpace = isl::space(Ctx, 0, 1);
NewSpace = NewSpace.set_tuple_id(isl::dim::set, NewId);
auto NewSet = isl::set::universe(NewSpace);
- Universe = Universe.add_set(NewSet);
+ Universe = Universe.unite(NewSet);
// Using the universe, fill missing data.
isl::union_set ExistingOccupied;