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

Commit 72e5dff

Browse files
author
Sven Verdoolaege
committed
add insertSequenceBelow
This will be useful in insertCopiesUnder to initialize a sequence for placing reads before and/or writes after.
1 parent 00e96d3 commit 72e5dff

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

tc/core/polyhedral/schedule_transforms.cc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,16 @@ ScheduleTree* insertSequenceAbove(ScheduleTree* root, ScheduleTree* tree) {
518518
return parent->child({childPos});
519519
}
520520

521+
void insertSequenceBelow(
522+
const detail::ScheduleTree* root,
523+
detail::ScheduleTree* tree) {
524+
auto numChildren = tree->numChildren();
525+
CHECK_LE(numChildren, 1u);
526+
auto filter = activeDomainPointsBelow(root, tree).universe();
527+
auto node = ScheduleTree::makeFilter(filter, tree->detachChildren());
528+
tree->appendChild(ScheduleTree::makeSequence(std::move(node)));
529+
}
530+
521531
ScheduleTree* insertExtensionAbove(
522532
ScheduleTree* relativeRoot,
523533
ScheduleTree* tree,

tc/core/polyhedral/schedule_transforms.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,14 @@ detail::ScheduleTree* insertSequenceAbove(
167167
detail::ScheduleTree* root,
168168
detail::ScheduleTree* tree);
169169

170+
// In a tree starting at "root", insert a sequence node underneath "tree".
171+
// "tree" is assumed to have at most one child.
172+
//
173+
// The tree is modified in place.
174+
void insertSequenceBelow(
175+
const detail::ScheduleTree* root,
176+
detail::ScheduleTree* tree);
177+
170178
// In a tree starting at a "relativeRoot", insert an extension node with the
171179
// given extension above the node identified by "tree".
172180
//

0 commit comments

Comments
 (0)