def apply(self, graph: SDFGState, sdfg: SDFG) -> Tuple[nodes.MapEntry, nodes.MapExit]: """ Collapses two maps into one. :param sdfg: The SDFG to apply the transformation to. :return: A 2-tuple of the new map entry and exit nodes. """ # Extract the parameters and ranges of the inner/outer maps. outer_map_entry = self.outer_map_entry inner_map_entry = self.inner_map_entry inner_map_exit = graph.exit_node(inner_map_entry) outer_map_exit = graph.exit_node(outer_map_entry) return sdutil.merge_maps(graph, outer_map_entry, outer_map_exit, inner_map_entry, inner_map_exit)
def apply(self, sdfg) -> Tuple[nodes.MapEntry, nodes.MapExit]: """ Collapses two maps into one. :param sdfg: The SDFG to apply the transformation to. :return: A 2-tuple of the new map entry and exit nodes. """ # Extract the parameters and ranges of the inner/outer maps. graph = sdfg.nodes()[self.state_id] outer_map_entry = graph.nodes()[self.subgraph[ MapCollapse._outer_map_entry]] inner_map_entry = graph.nodes()[self.subgraph[ MapCollapse._inner_map_entry]] inner_map_exit = graph.exit_node(inner_map_entry) outer_map_exit = graph.exit_node(outer_map_entry) return sdutil.merge_maps(graph, outer_map_entry, outer_map_exit, inner_map_entry, inner_map_exit)