@@ -1136,21 +1136,23 @@ bool ProvenanceGraph::isRecoverable(taco::IndexVar indexVar, std::set<taco::Inde
1136
1136
return isRecoverablePrecompute (indexVar, defined, producers, consumers);
1137
1137
}
1138
1138
1139
- bool ProvenanceGraph::isRecoverablePrecompute (taco::IndexVar indexVar, std::set<taco::IndexVar> defined, vector<IndexVar> producers, vector<IndexVar> consumers) const {
1139
+ bool ProvenanceGraph::isRecoverablePrecompute (taco::IndexVar indexVar, std::set<taco::IndexVar> defined,
1140
+ vector<IndexVar> producers, vector<IndexVar> consumers) const {
1140
1141
vector<IndexVar> childPrecompute;
1141
1142
if (std::find (consumers.begin (), consumers.end (), indexVar) != consumers.end ()) {
1142
1143
return true ;
1143
1144
}
1144
- if (!producers.empty () && (childRelMap.count (indexVar) && childRelMap.at (indexVar).getRelType () == IndexVarRelType::PRECOMPUTE)) {
1145
+ if (!producers.empty () && (childRelMap.count (indexVar) &&
1146
+ childRelMap.at (indexVar).getRelType () == IndexVarRelType::PRECOMPUTE)) {
1145
1147
auto precomputeChild = getChildren (indexVar)[0 ];
1146
1148
if (std::find (producers.begin (), producers.end (), precomputeChild) != producers.end ()) {
1147
1149
return true ;
1148
1150
}
1149
1151
return isRecoverablePrecompute (precomputeChild, defined, producers, consumers);
1150
1152
}
1151
1153
for (const IndexVar& child : getChildren (indexVar)) {
1152
- if (!defined.count (child) && (isFullyDerived (child)
1153
- || !isRecoverablePrecompute (child, defined, producers, consumers))) {
1154
+ if (!defined.count (child) && (isFullyDerived (child) ||
1155
+ !isRecoverablePrecompute (child, defined, producers, consumers))) {
1154
1156
return false ;
1155
1157
}
1156
1158
}
@@ -1315,12 +1317,6 @@ bool ProvenanceGraph::hasExactBound(IndexVar indexVar) const {
1315
1317
{
1316
1318
return rel.getNode <BoundRelNode>()->getBoundType () == BoundType::MaxExact;
1317
1319
}
1318
- // else if (rel.getRelType() == SPLIT)
1319
- // {
1320
- // return rel.getNode<SplitRelNode>()->getInnerVar() == indexVar;
1321
- // } else if (rel.getRelType() == PRECOMPUTE) {
1322
- // return hasExactBound(rel.getNode<PrecomputeRelNode>()->getParentVar());
1323
- // }
1324
1320
// TODO: include non-irregular variables
1325
1321
return false ;
1326
1322
}
0 commit comments