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

Commit f84119c

Browse files
author
Sven Verdoolaege
committed
drop mergeConsecutiveMappingFilters
This function does not appear to have ever been used outside PolyhedralMapperTest.FilterMerge. Since only a single mapping filter gets created now, the function should never be needed either.
1 parent f82779e commit f84119c

File tree

3 files changed

+0
-72
lines changed

3 files changed

+0
-72
lines changed

tc/core/polyhedral/schedule_transforms.cc

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -754,52 +754,5 @@ void orderAfter(ScheduleTree* root, ScheduleTree* tree, isl::union_set filter) {
754754
parent->insertChild(childPos, std::move(seq));
755755
}
756756

757-
detail::ScheduleTree* mergeConsecutiveMappingFilters(
758-
detail::ScheduleTree* root,
759-
detail::ScheduleTree* node) {
760-
CHECK(
761-
root->elemAs<ScheduleTreeElemDomain>() ||
762-
root->elemAs<ScheduleTreeElemExtension>());
763-
bool changed = true;
764-
while (changed) {
765-
changed = false;
766-
auto filterNodes = detail::ScheduleTree::collect(
767-
node, detail::ScheduleTreeType::MappingFilter);
768-
769-
for (auto f : filterNodes) {
770-
auto p = f->ancestor(root, 1);
771-
auto parentFilter = p->elemAs<ScheduleTreeElemMappingFilter>();
772-
if (!parentFilter) {
773-
continue;
774-
}
775-
auto filter = f->elemAs<ScheduleTreeElemMappingFilter>();
776-
auto merged = parentFilter->filter_ & filter->filter_;
777-
// We can only merge filters that have the same number of tuples
778-
if (merged.n_set() != parentFilter->filter_.n_set() ||
779-
merged.n_set() != filter->filter_.n_set()) {
780-
continue;
781-
}
782-
p->elemAs<ScheduleTreeElemMappingFilter>()->filter_ = merged;
783-
// const cast to replace in place rather than construct a new
784-
// ScheduleTree object (which would not be more functional-style anyway)
785-
auto& ids = const_cast<std::unordered_set<
786-
mapping::MappingId,
787-
typename mapping::MappingId::Hash>&>(
788-
p->elemAs<ScheduleTreeElemMappingFilter>()->mappingIds);
789-
for (auto id : filter->mappingIds) {
790-
CHECK_EQ(0u, ids.count(id))
791-
<< "Error when merging filters\n"
792-
<< *f << "\nand\n"
793-
<< *p << "\nid: " << id << " mapped in both!";
794-
ids.insert(id);
795-
}
796-
p->replaceChild(f->positionInParent(p), f->detachChild(0));
797-
changed = true;
798-
break;
799-
}
800-
}
801-
return node;
802-
}
803-
804757
} // namespace polyhedral
805758
} // namespace tc

tc/core/polyhedral/schedule_transforms.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -297,15 +297,6 @@ isl::union_set activeDomainPointsBelow(
297297
const detail::ScheduleTree* root,
298298
const detail::ScheduleTree* node);
299299

300-
////////////////////////////////////////////////////////////////////////////////
301-
// Experimental
302-
////////////////////////////////////////////////////////////////////////////////
303-
// Mapping filters are introduced one mapping dimension at a time.
304-
// This merges consecutive filters.
305-
detail::ScheduleTree* mergeConsecutiveMappingFilters(
306-
detail::ScheduleTree* root,
307-
detail::ScheduleTree* node);
308-
309300
} // namespace polyhedral
310301
} // namespace tc
311302

test/test_cuda_mapper.cc

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -337,22 +337,6 @@ TEST_F(PolyhedralMapperTest, MergedContexts) {
337337
ASSERT_TRUE(std::string::npos != res.find(kExpectedMatmul_64_64_64)) << res;
338338
}
339339

340-
TEST_F(PolyhedralMapperTest, FilterMerge) {
341-
auto scop = PrepareAndJoinBands(makeMatmulTc());
342-
auto schedule = scop->scheduleRoot();
343-
344-
// Unit test claims to use scop->globalParameterContext properly
345-
auto context = scop->makeContext<int>({{"M", 64}, {"N", 64}, {"K", 64}});
346-
auto& globalParameterContext =
347-
const_cast<isl::set&>(scop->globalParameterContext);
348-
globalParameterContext = globalParameterContext.intersect(context);
349-
scop->domain() = scop->domain().intersect(globalParameterContext);
350-
351-
auto mscop = TileAndMapThreads(std::move(scop), {16, 16}, {32ul, 8ul});
352-
mergeConsecutiveMappingFilters(schedule, schedule->child({0}));
353-
mscop->codegen(specializedName);
354-
}
355-
356340
TEST_F(PolyhedralMapperTest, Match1) {
357341
auto scop = PrepareAndJoinBands(makeMatmulTc());
358342
auto schedule = scop->scheduleRoot();

0 commit comments

Comments
 (0)