Lines Matching refs:scc
34 c->n = graph->scc; in clustering_init()
35 c->scc = isl_calloc_array(ctx, struct isl_sched_graph, c->n); in clustering_init()
40 if (!c->scc || !c->cluster || in clustering_init()
48 i, &c->scc[i]) < 0) in clustering_init()
50 c->scc[i].scc = 1; in clustering_init()
51 if (isl_sched_graph_compute_maxvar(&c->scc[i]) < 0) in clustering_init()
53 if (isl_schedule_node_compute_wcc_band(ctx, &c->scc[i]) < 0) in clustering_init()
67 if (c->scc) in clustering_free()
69 isl_sched_graph_free(ctx, &c->scc[i]); in clustering_free()
70 free(c->scc); in clustering_free()
131 if (bad_cluster(&c->scc[edge->src->scc]) || in find_proximity()
132 bad_cluster(&c->scc[edge->dst->scc])) in find_proximity()
134 dist = c->scc_cluster[edge->dst->scc] - in find_proximity()
135 c->scc_cluster[edge->src->scc]; in find_proximity()
186 if (scc_cluster[graph->node[i].scc] == scc_cluster[graph->node[j].scc]) in cluster_follows()
245 int scc = graph->node[g->order[i]].scc; in mark_merge_sccs() local
246 c->scc_in_merge[scc] = 1; in mark_merge_sccs()
272 static __isl_give isl_space *cluster_space(struct isl_sched_graph *scc, int i) in cluster_space() argument
278 nvar = scc->n_total_row - scc->band_start; in cluster_space()
279 space = isl_space_copy(scc->node[0].space); in cluster_space()
305 for (i = 0; i < graph->scc; ++i) { in collect_domain()
312 space = cluster_space(&c->scc[i], i); in collect_domain()
331 for (i = 0; i < graph->scc; ++i) { in collect_cluster_map()
339 start = c->scc[i].band_start; in collect_cluster_map()
340 n = c->scc[i].n_total_row - start; in collect_cluster_map()
341 for (j = 0; j < c->scc[i].n; ++j) { in collect_cluster_map()
344 struct isl_sched_node *node = &c->scc[i].node[j]; in collect_cluster_map()
484 if (!scc_in_merge[edge->src->scc]) in collect_constraints()
486 if (!scc_in_merge[edge->dst->scc]) in collect_constraints()
546 struct isl_sched_graph *scc; in compute_maxvar_max_slack() local
550 scc = &c->scc[i]; in compute_maxvar_max_slack()
551 nvar = scc->n_total_row - scc->band_start; in compute_maxvar_max_slack()
554 for (j = 0; j < scc->n; ++j) { in compute_maxvar_max_slack()
555 struct isl_sched_node *node = &scc->node[j]; in compute_maxvar_max_slack()
586 struct isl_sched_graph *scc; in limit_maxvar_to_slack() local
590 scc = &c->scc[i]; in limit_maxvar_to_slack()
591 nvar = scc->n_total_row - scc->band_start; in limit_maxvar_to_slack()
594 for (j = 0; j < scc->n; ++j) { in limit_maxvar_to_slack()
595 struct isl_sched_node *node = &scc->node[j]; in limit_maxvar_to_slack()
682 n_coincident = get_n_coincident(&c->scc[i]); in ok_to_merge_coincident()
716 scc_node = isl_sched_graph_find_node(ctx, &c->scc[node->scc], in extract_node_transformation()
718 if (scc_node && !isl_sched_graph_is_node(&c->scc[node->scc], scc_node)) in extract_node_transformation()
721 start = c->scc[node->scc].band_start; in extract_node_transformation()
722 n = c->scc[node->scc].n_total_row - start; in extract_node_transformation()
725 space = cluster_space(&c->scc[node->scc], c->scc_cluster[node->scc]); in extract_node_transformation()
919 if (!c->scc_in_merge[edge->src->scc]) in ok_to_merge_proximity()
921 if (!c->scc_in_merge[edge->dst->scc]) in ok_to_merge_proximity()
923 if (c->scc_cluster[edge->dst->scc] == in ok_to_merge_proximity()
924 c->scc_cluster[edge->src->scc]) in ok_to_merge_proximity()
1082 space = cluster_space(&c->scc[i], c->scc_cluster[i]); in merge()
1091 if (transform(ctx, &c->scc[i], node) < 0) in merge()
1177 if (!scc_in_merge[edge->src->scc]) in any_no_merge()
1179 if (!scc_in_merge[edge->dst->scc]) in any_no_merge()
1282 c->cluster[pos].n_total_row = c->scc[pos].n_total_row; in copy_partial()
1283 c->cluster[pos].n_row = c->scc[pos].n_row; in copy_partial()
1284 c->cluster[pos].maxvar = c->scc[pos].maxvar; in copy_partial()
1292 s = graph->node[i].scc; in copy_partial()
1294 swap_sched(&c->cluster[pos].node[j], &c->scc[s].node[k]); in copy_partial()
1295 if (c->scc[s].maxvar > c->cluster[pos].maxvar) in copy_partial()
1296 c->cluster[pos].maxvar = c->scc[s].maxvar; in copy_partial()
1338 graph->node[i].cluster = c->scc_cluster[graph->node[i].scc]; in extract_clusters()
1340 for (i = 0; i < graph->scc; ++i) { in extract_clusters()
1357 c->scc_cluster[graph->node[i].scc] = graph->node[i].cluster; in extract_clusters()
1398 if (bad_cluster(&c->scc[edge->src->scc]) || in compute_weights()
1399 bad_cluster(&c->scc[edge->dst->scc])) in compute_weights()
1401 if (c->scc_cluster[edge->dst->scc] == in compute_weights()
1402 c->scc_cluster[edge->src->scc]) in compute_weights()
1491 if (graph->scc == 1) in finish_bands_clustering()
1494 if (graph->scc > 2) in finish_bands_clustering()
1502 for (i = 0; i < graph->scc; ++i) { in finish_bands_clustering()