MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / SortMergeNodes

Method SortMergeNodes

tensorflow/compiler/tf2xla/functionalize_cond.cc:1401–1419  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1399}
1400
1401void FunctionalizeCond::SortMergeNodes(std::vector<Node*>* merge_order) {
1402 // Sort merge nodes by nesting depth.
1403 using sort_pair = std::pair<int, Node*>;
1404 std::vector<sort_pair> inner_to_outer_merge_order;
1405 inner_to_outer_merge_order.reserve(merge_order->size());
1406 for (auto it = merge_order->rbegin(); it != merge_order->rend(); ++it) {
1407 Node* merge = *it;
1408 StateMap::CondId id = state_map_.LookupCondId(merge);
1409 int depth = id != nullptr ? id->size() : 0;
1410 inner_to_outer_merge_order.emplace_back(depth, merge);
1411 }
1412 std::stable_sort(
1413 inner_to_outer_merge_order.begin(), inner_to_outer_merge_order.end(),
1414 [](sort_pair lhs, sort_pair rhs) { return lhs.first > rhs.first; });
1415 merge_order->clear();
1416 for (sort_pair t : inner_to_outer_merge_order) {
1417 merge_order->push_back(t.second);
1418 }
1419}
1420
1421Status FunctionalizeCond::FunctionalizeInternal() {
1422 // The general approach for converting a tf.cond (as lowered via switch/merge

Callers

nothing calls this directly

Calls 10

rbeginMethod · 0.80
rendMethod · 0.80
LookupCondIdMethod · 0.80
reserveMethod · 0.45
sizeMethod · 0.45
emplace_backMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
clearMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected