| 552 | } |
| 553 | |
| 554 | void TopoSorter::restore_opr_prop() { |
| 555 | // iter in reverse order to handle the case when an (opr, var) pair is |
| 556 | // modified multiple times |
| 557 | for (auto&& i : reverse_adaptor(m_modified_dep_map_log)) { |
| 558 | OperatorNodeBase* opr; |
| 559 | VarNode* var; |
| 560 | OprNodeProp::DepType dep; |
| 561 | std::tie(opr, var, dep) = i; |
| 562 | |
| 563 | auto&& dep_map = const_cast<OprNodeProp::DepMap&>(opr->node_prop().dep_map()); |
| 564 | |
| 565 | if (dep == OprNodeProp::DepType{}) |
| 566 | dep_map.erase(var); |
| 567 | else |
| 568 | dep_map[var] = dep; |
| 569 | } |
| 570 | m_modified_dep_map_log.clear(); |
| 571 | } |
| 572 | |
| 573 | // vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}} |
no test coverage detected