MCPcopy Create free account
hub / github.com/Oneflow-Inc/oneflow / OpNodeOnEdge

Function OpNodeOnEdge

oneflow/core/graph/compute_task_node.cpp:24–38  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22namespace {
23
24const OpNode* OpNodeOnEdge(TaskEdge* edge, TaskNode* (TaskEdge::*GetNode)() const,
25 void (TaskNode::*ForEachDataEdge)(const std::function<void(TaskEdge*)>&)
26 const) {
27 CompTaskNode* target_node = nullptr;
28 do {
29 TaskNode* tmp_node = (edge->*GetNode)();
30 target_node = dynamic_cast<CompTaskNode*>(tmp_node);
31 edge = nullptr;
32 (tmp_node->*ForEachDataEdge)([&](TaskEdge* e) {
33 if (edge == nullptr) { edge = e; }
34 });
35 } while (!target_node && edge);
36 if (target_node) { return target_node->op_node(); }
37 return nullptr;
38}
39
40std::vector<CompTaskNode*> GetCompTaskNodesOnEdge(
41 TaskEdge* edge, TaskNode* (TaskEdge::*GetNode)() const,

Callers 2

Calls 1

op_nodeMethod · 0.80

Tested by

no test coverage detected