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

Commit d2a11b6

Browse files
author
Sven Verdoolaege
committed
drop ScheduleTree::elemAsBase
Its only purpose was to support having ScheduleTreeElemMappingFilter as a subclass of ScheduleTreeElemFilter, but this is now no longer the case.
1 parent 02207b3 commit d2a11b6

File tree

3 files changed

+0
-64
lines changed

3 files changed

+0
-64
lines changed

tc/core/polyhedral/schedule_isl_conversion.cc

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -32,24 +32,6 @@ namespace tc {
3232
namespace polyhedral {
3333
namespace detail {
3434

35-
// static constexpr std::initializer_list need both definition and declaration
36-
constexpr std::initializer_list<detail::ScheduleTreeType>
37-
ScheduleTreeElemExtension::NodeDerivedTypes;
38-
constexpr std::initializer_list<detail::ScheduleTreeType>
39-
ScheduleTreeElemSequence::NodeDerivedTypes;
40-
constexpr std::initializer_list<detail::ScheduleTreeType>
41-
ScheduleTreeElemSet::NodeDerivedTypes;
42-
constexpr std::initializer_list<detail::ScheduleTreeType>
43-
ScheduleTreeElemDomain::NodeDerivedTypes;
44-
constexpr std::initializer_list<detail::ScheduleTreeType>
45-
ScheduleTreeElemFilter::NodeDerivedTypes;
46-
constexpr std::initializer_list<detail::ScheduleTreeType>
47-
ScheduleTreeElemMappingFilter::NodeDerivedTypes;
48-
constexpr std::initializer_list<detail::ScheduleTreeType>
49-
ScheduleTreeElemBand::NodeDerivedTypes;
50-
constexpr std::initializer_list<detail::ScheduleTreeType>
51-
ScheduleTreeElemContext::NodeDerivedTypes;
52-
5335
namespace {
5436

5537
isl::schedule_node insertChild(isl::schedule_node node, const ScheduleTree* st);

tc/core/polyhedral/schedule_tree.h

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -449,34 +449,6 @@ struct ScheduleTree {
449449
const_cast<const ScheduleTreeElemBase*>(elem_.get()));
450450
}
451451

452-
// View elem_ as the specified type.
453-
// Returns nullptr if neither this type, **nor any of the derived types**,
454-
// are T.
455-
// Inline impl for now, does not justify an extra -inl.h file
456-
template <typename T>
457-
T* elemAsBase() {
458-
const ScheduleTree* t = this;
459-
return const_cast<T*>(t->elemAsBase<const T>());
460-
}
461-
template <typename T>
462-
const T* elemAsBase() const {
463-
static_assert(
464-
std::is_base_of<ScheduleTreeElemBase, T>::value,
465-
"Must call with a class derived from ScheduleTreeElemBase");
466-
// These T::NodeDerivedTypes are ugly, let's see if we can improve in the
467-
// future but if we want dynamic typing and to avoid enumerations at each
468-
// call site, which I claim we absolutely do, then we are not left with
469-
// many options.
470-
if (type_ != T::NodeType &&
471-
std::find(
472-
T::NodeDerivedTypes.begin(), T::NodeDerivedTypes.end(), type_) ==
473-
T::NodeDerivedTypes.end()) {
474-
return nullptr;
475-
}
476-
return static_cast<const T*>(
477-
const_cast<const ScheduleTreeElemBase*>(elem_.get()));
478-
}
479-
480452
//
481453
// Data members
482454
//

tc/core/polyhedral/schedule_tree_elem.h

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ struct ScheduleTreeElemBase {
5656
};
5757

5858
struct ScheduleTreeElemContext : public ScheduleTreeElemBase {
59-
static constexpr std::initializer_list<detail::ScheduleTreeType>
60-
NodeDerivedTypes{detail::ScheduleTreeType::None};
6159
static constexpr detail::ScheduleTreeType NodeType =
6260
detail::ScheduleTreeType::Context;
6361
isl::set context_;
@@ -77,8 +75,6 @@ struct ScheduleTreeElemContext : public ScheduleTreeElemBase {
7775
};
7876

7977
struct ScheduleTreeElemDomain : public ScheduleTreeElemBase {
80-
static constexpr std::initializer_list<detail::ScheduleTreeType>
81-
NodeDerivedTypes{detail::ScheduleTreeType::None};
8278
static constexpr detail::ScheduleTreeType NodeType =
8379
detail::ScheduleTreeType::Domain;
8480
isl::union_set domain_;
@@ -98,8 +94,6 @@ struct ScheduleTreeElemDomain : public ScheduleTreeElemBase {
9894
};
9995

10096
struct ScheduleTreeElemExtension : public ScheduleTreeElemBase {
101-
static constexpr std::initializer_list<detail::ScheduleTreeType>
102-
NodeDerivedTypes{detail::ScheduleTreeType::None};
10397
static constexpr detail::ScheduleTreeType NodeType =
10498
detail::ScheduleTreeType::Extension;
10599
isl::union_map extension_;
@@ -119,8 +113,6 @@ struct ScheduleTreeElemExtension : public ScheduleTreeElemBase {
119113
};
120114

121115
struct ScheduleTreeElemFilter : public ScheduleTreeElemBase {
122-
static constexpr std::initializer_list<detail::ScheduleTreeType>
123-
NodeDerivedTypes{detail::ScheduleTreeType::MappingFilter};
124116
static constexpr detail::ScheduleTreeType NodeType =
125117
detail::ScheduleTreeType::Filter;
126118
isl::union_set filter_;
@@ -144,8 +136,6 @@ struct ScheduleTreeElemMappingFilter : public ScheduleTreeElemBase {
144136
mapping::MappingId,
145137
isl::union_pw_aff,
146138
typename mapping::MappingId::Hash>;
147-
static constexpr std::initializer_list<detail::ScheduleTreeType>
148-
NodeDerivedTypes{detail::ScheduleTreeType::None};
149139
static constexpr detail::ScheduleTreeType NodeType =
150140
detail::ScheduleTreeType::MappingFilter;
151141
ScheduleTreeElemMappingFilter() = delete;
@@ -186,8 +176,6 @@ struct ScheduleTreeElemMappingFilter : public ScheduleTreeElemBase {
186176
};
187177

188178
struct ScheduleTreeElemSequence : public ScheduleTreeElemBase {
189-
static constexpr std::initializer_list<detail::ScheduleTreeType>
190-
NodeDerivedTypes{detail::ScheduleTreeType::None};
191179
static constexpr detail::ScheduleTreeType NodeType =
192180
detail::ScheduleTreeType::Sequence;
193181
explicit ScheduleTreeElemSequence() {}
@@ -204,8 +192,6 @@ struct ScheduleTreeElemSequence : public ScheduleTreeElemBase {
204192
};
205193

206194
struct ScheduleTreeElemSet : public ScheduleTreeElemBase {
207-
static constexpr std::initializer_list<detail::ScheduleTreeType>
208-
NodeDerivedTypes{detail::ScheduleTreeType::None};
209195
static constexpr detail::ScheduleTreeType NodeType =
210196
detail::ScheduleTreeType::Set;
211197
explicit ScheduleTreeElemSet() {}
@@ -226,8 +212,6 @@ struct ScheduleTreeElemBand : public ScheduleTreeElemBase {
226212
ScheduleTreeElemBand() = default;
227213

228214
public:
229-
static constexpr std::initializer_list<detail::ScheduleTreeType>
230-
NodeDerivedTypes{detail::ScheduleTreeType::None};
231215
static constexpr detail::ScheduleTreeType NodeType =
232216
detail::ScheduleTreeType::Band;
233217

@@ -280,8 +264,6 @@ struct ScheduleTreeElemBand : public ScheduleTreeElemBase {
280264
* underneath the innermost band member mapped to threads.
281265
*/
282266
struct ScheduleTreeElemThreadSpecificMarker : public ScheduleTreeElemBase {
283-
static constexpr std::initializer_list<detail::ScheduleTreeType>
284-
NodeDerivedTypes{detail::ScheduleTreeType::None};
285267
static constexpr detail::ScheduleTreeType NodeType =
286268
detail::ScheduleTreeType::ThreadSpecificMarker;
287269
explicit ScheduleTreeElemThreadSpecificMarker() {}

0 commit comments

Comments
 (0)