def has_surrounding_perfcounters(node, dfg: SubgraphView): """ Returns true if there is a possibility that this node is part of a section that is profiled. """ parent = dfg.scope_dict()[node] if isinstance(parent, MapEntry): if (parent.map.schedule not in PAPIInstrumentation.perf_whitelist_schedules): return False return True return False
def _components( subgraph: gr.SubgraphView) -> List[Tuple[nodes.Node, nodes.Node]]: """ Returns the list of tuples non-array components in this subgraph. Each element in the list is a 2 tuple of (input node, output node) of the component. """ graph = (subgraph if isinstance(subgraph, sd.SDFGState) else subgraph.graph) sdict = subgraph.scope_dict(node_to_children=True) ns = [(n, graph.exit_node(n)) if isinstance(n, nodes.EntryNode) else (n, n) for n in sdict[None] if isinstance(n, (nodes.CodeNode, nodes.EntryNode))] return ns