DenseMap<BasicBlock *, isl::set> &InvalidDomainMap);
/// Add parameter constraints to @p C that imply a non-empty domain.
- __isl_give isl_set *addNonEmptyDomainConstraints(__isl_take isl_set *C) const;
+ isl::set addNonEmptyDomainConstraints(isl::set C) const;
/// Return the access for the base ptr of @p MA if any.
MemoryAccess *lookupBasePtrAccess(MemoryAccess *MA);
return isl::manage(isl_id_copy(ParameterIds.lookup(Parameter)));
}
-__isl_give isl_set *
-Scop::addNonEmptyDomainConstraints(__isl_take isl_set *C) const {
+isl::set Scop::addNonEmptyDomainConstraints(isl::set C) const {
isl_set *DomainContext = isl_union_set_params(getDomains());
- return isl_set_intersect_params(C, DomainContext);
+ return isl::manage(isl_set_intersect_params(C.release(), DomainContext));
}
bool Scop::isDominatedBy(const DominatorTree &DT, BasicBlock *BB) const {
bool Scop::hasFeasibleRuntimeContext() const {
auto *PositiveContext = getAssumedContext();
auto *NegativeContext = getInvalidContext();
- PositiveContext = addNonEmptyDomainConstraints(PositiveContext);
+ PositiveContext =
+ addNonEmptyDomainConstraints(isl::manage(PositiveContext)).release();
bool IsFeasible = !(isl_set_is_empty(PositiveContext) ||
isl_set_is_subset(PositiveContext, NegativeContext));
isl_set_free(PositiveContext);