Skip to content
This repository was archived by the owner on Apr 28, 2023. It is now read-only.

Commit 7aa7b26

Browse files
committed
ScheduleTreeElemSequence: require isl::ctx in the constructor
Since ScheduleTreeElemSequence is now a subclass of ScheduleTree, it needs an isl::ctx to construct the ScheduleTree. It is available in all callsites of the ScheduleTreeElemSequence constructor. Pass it as an argument.
1 parent 1b30d6d commit 7aa7b26

File tree

3 files changed

+6
-7
lines changed

3 files changed

+6
-7
lines changed

tc/core/polyhedral/schedule_isl_conversion.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ std::unique_ptr<ScheduleTreeElemBand> fromIslScheduleNodeBand(
249249
}
250250

251251
std::unique_ptr<ScheduleTree> elemFromIslScheduleNode(isl::schedule_node node) {
252+
auto ctx = node.get_ctx();
252253
if (auto band = node.as<isl::schedule_node_band>()) {
253254
return fromIslScheduleNodeBand(band);
254255
} else if (auto context = node.as<isl::schedule_node_context>()) {
@@ -281,7 +282,7 @@ std::unique_ptr<ScheduleTree> elemFromIslScheduleNode(isl::schedule_node node) {
281282
return nullptr;
282283
} else if (node.isa<isl::schedule_node_sequence>()) {
283284
return std::unique_ptr<ScheduleTreeElemSequence>(
284-
new ScheduleTreeElemSequence());
285+
new ScheduleTreeElemSequence(ctx));
285286
} else if (node.isa<isl::schedule_node_set>()) {
286287
return std::unique_ptr<ScheduleTreeElemSet>(new ScheduleTreeElemSet());
287288
}

tc/core/polyhedral/schedule_tree.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -420,9 +420,8 @@ struct ScheduleTree {
420420
ScheduleTreeUPtr>::value,
421421
"Arguments must be rvalue references to ScheduleTreeUPtr");
422422

423-
auto ctx = arg->ctx_; // FIXME: pass this to the constructor of T
424-
// when possible
425-
auto res = ScheduleTreeUPtr(new T);
423+
auto ctx = arg->ctx_;
424+
auto res = ScheduleTreeUPtr(new T(ctx));
426425
res->appendChildren(
427426
vectorFromArgs(std::forward<Arg>(arg), std::forward<Args>(args)...));
428427

tc/core/polyhedral/schedule_tree_elem.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,8 @@ struct ScheduleTreeElemMapping : public ScheduleTree {
159159
struct ScheduleTreeElemSequence : public ScheduleTree {
160160
static constexpr detail::ScheduleTreeType NodeType =
161161
detail::ScheduleTreeType::Sequence;
162-
explicit ScheduleTreeElemSequence()
163-
: ScheduleTree(isl::with_exceptions::globalIslCtx(), {}, NodeType) {
164-
} // FIXME: accept a ctx instead of using the global ctx
162+
explicit ScheduleTreeElemSequence(isl::ctx ctx)
163+
: ScheduleTree(ctx, {}, NodeType) {}
165164
ScheduleTreeElemSequence(const ScheduleTreeElemSequence& eb)
166165
: ScheduleTree(eb) {}
167166
virtual ~ScheduleTreeElemSequence() override {}

0 commit comments

Comments
 (0)