Lines Matching defs:dst
101 * dst is the sink node
113 struct isl_sched_node *dst;
254 return edge->src == temp->src && edge->dst == temp->dst;
267 hash = isl_hash_builtin(hash, edge->dst);
301 struct isl_sched_node *src, struct isl_sched_node *dst)
305 struct isl_sched_edge temp = { .src = src, .dst = dst };
309 hash = isl_hash_builtin(hash, temp.dst);
321 struct isl_sched_node *src, struct isl_sched_node *dst)
325 entry = graph_find_edge_entry(graph, type, src, dst);
337 struct isl_sched_node *src, struct isl_sched_node *dst)
342 edge = graph_find_edge(graph, type, src, dst);
358 struct isl_sched_node *src, struct isl_sched_node *dst)
364 edge = graph_find_edge(graph, i, src, dst);
383 entry = graph_find_edge_entry(graph, i, edge->src, edge->dst);
396 struct isl_sched_node *src, struct isl_sched_node *dst)
402 r = graph_has_edge(graph, i, src, dst);
414 struct isl_sched_node *src, struct isl_sched_node *dst)
416 return graph_has_edge(graph, isl_edge_validity, src, dst);
568 struct isl_sched_node *src, *dst;
577 dst = graph_find_node(ctx, graph, dim);
580 if (!src || !dst) {
586 graph->edge[graph->n_edge].dst = dst;
598 edge = graph_find_any_edge(graph, src, dst);
853 struct isl_sched_node *dst = edge->dst;
863 isl_mat_copy(dst->cmap));
870 isl_dim_map_range(dim_map, dst->start, 0, 0, 0, 1, 1);
871 isl_dim_map_range(dim_map, dst->start + 1, 2, 1, 1, dst->nparam, -1);
872 isl_dim_map_range(dim_map, dst->start + 2, 2, 1, 1, dst->nparam, 1);
873 isl_dim_map_range(dim_map, dst->start + 2 * dst->nparam + 1, 2,
875 dst->nvar, -1);
876 isl_dim_map_range(dim_map, dst->start + 2 * dst->nparam + 2, 2,
878 dst->nvar, 1);
1026 struct isl_sched_node *dst = edge->dst;
1036 isl_mat_copy(dst->cmap));
1048 isl_dim_map_range(dim_map, dst->start, 0, 0, 0, 1, -s);
1049 isl_dim_map_range(dim_map, dst->start + 1, 2, 1, 1, dst->nparam, s);
1050 isl_dim_map_range(dim_map, dst->start + 2, 2, 1, 1, dst->nparam, -s);
1051 isl_dim_map_range(dim_map, dst->start + 2 * dst->nparam + 1, 2,
1053 dst->nvar, s);
1054 isl_dim_map_range(dim_map, dst->start + 2 * dst->nparam + 2, 2,
1056 dst->nvar, -s);
1088 if (edge->src != edge->dst)
1098 if (edge->src == edge->dst)
1123 if (edge->src == edge->dst &&
1126 if (edge->src != edge->dst &&
1131 if (edge->src == edge->dst &&
1134 if (edge->src != edge->dst &&
1204 if (edge->src == edge->dst)
1444 if (graph->edge[i].src == graph->edge[i].dst)
1446 if (graph->edge[i].src->scc == graph->edge[i].dst->scc)
1453 graph->dst_scc = graph->edge[i].dst->scc;
1660 struct isl_sched_node *src, struct isl_sched_node *dst)
1665 dst_sched = node_extract_schedule(dst);
1681 edge->map = specialize(edge->map, edge->src, edge->dst);
1818 * to the dst dependence graph.
1820 static int copy_nodes(struct isl_sched_graph *dst, struct isl_sched_graph *src,
1825 dst->n = 0;
1829 dst->node[dst->n].dim = isl_space_copy(src->node[i].dim);
1830 dst->node[dst->n].nvar = src->node[i].nvar;
1831 dst->node[dst->n].nparam = src->node[i].nparam;
1832 dst->node[dst->n].sched = isl_mat_copy(src->node[i].sched);
1833 dst->node[dst->n].sched_map =
1835 dst->node[dst->n].band = src->node[i].band;
1836 dst->node[dst->n].band_id = src->node[i].band_id;
1837 dst->node[dst->n].zero = src->node[i].zero;
1838 dst->n++;
1845 * to the dst dependence graph.
1850 static int copy_edges(isl_ctx *ctx, struct isl_sched_graph *dst,
1857 dst->n_edge = 0;
1869 dst_src = graph_find_node(ctx, dst, edge->src->dim);
1870 dst_dst = graph_find_node(ctx, dst, edge->dst->dim);
1880 dst->edge[dst->n_edge].src = dst_src;
1881 dst->edge[dst->n_edge].dst = dst_dst;
1882 dst->edge[dst->n_edge].map = map;
1883 dst->edge[dst->n_edge].validity = edge->validity;
1884 dst->edge[dst->n_edge].proximity = edge->proximity;
1885 dst->n_edge++;
1889 graph_find_edge(src, t, edge->src, edge->dst))
1891 if (graph_edge_table_add(ctx, dst, t,
1892 &dst->edge[dst->n_edge - 1]) < 0)
1900 /* Given a "src" dependence graph that contains the nodes from "dst"
1902 * for those nodes back to "dst".
1904 static int copy_schedule(struct isl_sched_graph *dst,
1911 for (i = 0; i < dst->n; ++i) {
1912 if (!node_pred(&dst->node[i], data))
1914 isl_mat_free(dst->node[i].sched);
1915 isl_map_free(dst->node[i].sched_map);
1916 dst->node[i].sched = isl_mat_copy(src->node[src->n].sched);
1917 dst->node[i].sched_map =
1922 dst->max_row = src->max_row;
1923 dst->n_total_row = src->n_total_row;
1924 dst->n_band = src->n_band;
2026 return edge->src->scc == scc && edge->dst->scc == scc;
2031 return edge->dst->scc <= scc;
2128 if (graph->edge[i].dst->scc <= graph->src_scc)
2250 struct isl_sched_node *dst = edge->dst;
2263 isl_dim_map_range(dim_map, dst->start, 0, 0, 0, 1, 1);
2264 isl_dim_map_range(dim_map, dst->start + 1, 2, 1, 1, dst->nparam, -1);
2265 isl_dim_map_range(dim_map, dst->start + 2, 2, 1, 1, dst->nparam, 1);
2266 isl_dim_map_range(dim_map, dst->start + 2 * dst->nparam + 1, 2,
2268 dst->nvar, -1);
2269 isl_dim_map_range(dim_map, dst->start + 2 * dst->nparam + 2, 2,
2271 dst->nvar, 1);
2314 if (edge->src == edge->dst &&
2317 if (edge->src != edge->dst &&
2869 graph->edge[i].dst->scc == wcc)