X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fkaps%2Foptimal.c;h=802534c589e22e653ba10f93d2290502aa86ee16;hb=2ee064e0f2a03bbdbdb51839cfd852b9fc6f1079;hp=a37bc2f31a0d7ddaaf8dbd6a00ef537152bbbe8f;hpb=10e58f9669ea6c77e82bd3bc12c4ac5bbaa6bb15;p=libfirm diff --git a/ir/kaps/optimal.c b/ir/kaps/optimal.c index a37bc2f31..802534c58 100644 --- a/ir/kaps/optimal.c +++ b/ir/kaps/optimal.c @@ -22,7 +22,6 @@ * @brief Optimal reductions and helper functions. * @date 28.12.2009 * @author Sebastian Buchwald - * @version $Id$ */ #include "config.h" @@ -47,7 +46,7 @@ #include "timing.h" pbqp_edge_t **edge_bucket; -pbqp_edge_t **rm_bucket; +static pbqp_edge_t **rm_bucket; pbqp_node_t **node_buckets[4]; pbqp_node_t **reduced_bucket = NULL; pbqp_node_t *merged_node = NULL; @@ -271,7 +270,6 @@ static void merge_source_into_target(pbqp_t *pbqp, pbqp_edge_t *edge) unsigned *mapping; unsigned src_len; unsigned tgt_len; - unsigned src_index; unsigned tgt_index; unsigned edge_index; unsigned edge_len; @@ -296,6 +294,7 @@ static void merge_source_into_target(pbqp_t *pbqp, pbqp_edge_t *edge) /* Check that each column has at most one zero entry. */ for (tgt_index = 0; tgt_index < tgt_len; ++tgt_index) { unsigned onlyOneZero = 0; + unsigned src_index; if (tgt_vec->entries[tgt_index].data == INF_COSTS) continue; @@ -329,7 +328,7 @@ static void merge_source_into_target(pbqp_t *pbqp, pbqp_edge_t *edge) if (pbqp->dump_file) { char txt[100]; sprintf(txt, "Merging n%d into n%d", src_node->index, tgt_node->index); - dump_section(pbqp->dump_file, 3, txt); + pbqp_dump_section(pbqp->dump_file, 3, txt); } #endif @@ -343,7 +342,6 @@ static void merge_source_into_target(pbqp_t *pbqp, pbqp_edge_t *edge) vector_t *other_vec; unsigned other_len; unsigned other_index; - unsigned tgt_index; assert(old_edge); if (old_edge == edge) @@ -435,7 +433,6 @@ static void merge_target_into_source(pbqp_t *pbqp, pbqp_edge_t *edge) unsigned src_len; unsigned tgt_len; unsigned src_index; - unsigned tgt_index; unsigned edge_index; unsigned edge_len; @@ -459,6 +456,7 @@ static void merge_target_into_source(pbqp_t *pbqp, pbqp_edge_t *edge) /* Check that each row has at most one zero entry. */ for (src_index = 0; src_index < src_len; ++src_index) { unsigned onlyOneZero = 0; + unsigned tgt_index; if (src_vec->entries[src_index].data == INF_COSTS) continue; @@ -492,7 +490,7 @@ static void merge_target_into_source(pbqp_t *pbqp, pbqp_edge_t *edge) if (pbqp->dump_file) { char txt[100]; sprintf(txt, "Merging n%d into n%d", tgt_node->index, src_node->index); - dump_section(pbqp->dump_file, 3, txt); + pbqp_dump_section(pbqp->dump_file, 3, txt); } #endif @@ -506,7 +504,6 @@ static void merge_target_into_source(pbqp_t *pbqp, pbqp_edge_t *edge) vector_t *other_vec; unsigned other_len; unsigned other_index; - unsigned src_index; assert(old_edge); @@ -676,7 +673,7 @@ void simplify_edge(pbqp_t *pbqp, pbqp_edge_t *edge) if (pbqp->dump_file) { char txt[100]; sprintf(txt, "Simplification of Edge n%d-n%d", src_node->index, tgt_node->index); - dump_section(pbqp->dump_file, 3, txt); + pbqp_dump_section(pbqp->dump_file, 3, txt); } #endif @@ -693,7 +690,7 @@ void simplify_edge(pbqp_t *pbqp, pbqp_edge_t *edge) #if KAPS_DUMP if (pbqp->dump_file) { fputs("Input:
\n", pbqp->dump_file); - dump_simplifyedge(pbqp, edge); + pbqp_dump_simplifyedge(pbqp, edge); } #endif @@ -703,7 +700,7 @@ void simplify_edge(pbqp_t *pbqp, pbqp_edge_t *edge) #if KAPS_DUMP if (pbqp->dump_file) { fputs("
\nOutput:
\n", pbqp->dump_file); - dump_simplifyedge(pbqp, edge); + pbqp_dump_simplifyedge(pbqp, edge); } #endif @@ -735,7 +732,7 @@ void initial_simplify_edges(pbqp_t *pbqp) #if KAPS_DUMP if (pbqp->dump_file) { pbqp_dump_input(pbqp); - dump_section(pbqp->dump_file, 1, "2. Simplification of Cost Matrices"); + pbqp_dump_section(pbqp->dump_file, 1, "2. Simplification of Cost Matrices"); } #endif @@ -792,8 +789,8 @@ num determine_solution(pbqp_t *pbqp) file = pbqp->dump_file; if (file) { - dump_section(file, 1, "4. Determine Solution/Minimum"); - dump_section(file, 2, "4.1. Trivial Solution"); + pbqp_dump_section(file, 1, "4. Determine Solution/Minimum"); + pbqp_dump_section(file, 2, "4.1. Trivial Solution"); } #endif @@ -814,14 +811,14 @@ num determine_solution(pbqp_t *pbqp) #if KAPS_DUMP if (file) { fprintf(file, "node n%d is set to %d
\n", node->index, node->solution); - dump_node(file, node); + pbqp_dump_node(file, node); } #endif } #if KAPS_DUMP if (file) { - dump_section(file, 2, "Minimum"); + pbqp_dump_section(file, 2, "Minimum"); #if KAPS_USE_UNSIGNED fprintf(file, "Minimum is equal to %u.", solution); #else @@ -951,7 +948,7 @@ void back_propagate(pbqp_t *pbqp) #if KAPS_DUMP if (pbqp->dump_file) { - dump_section(pbqp->dump_file, 2, "Back Propagation"); + pbqp_dump_section(pbqp->dump_file, 2, "Back Propagation"); } #endif @@ -967,7 +964,6 @@ void back_propagate(pbqp_t *pbqp) break; default: panic("Only nodes with degree one or two should be in this bucket"); - break; } } } @@ -1000,12 +996,12 @@ void apply_RI(pbqp_t *pbqp) if (pbqp->dump_file) { char txt[100]; sprintf(txt, "RI-Reduction of Node n%d", node->index); - dump_section(pbqp->dump_file, 2, txt); + pbqp_dump_section(pbqp->dump_file, 2, txt); pbqp_dump_graph(pbqp); fputs("
\nBefore reduction:
\n", pbqp->dump_file); - dump_node(pbqp->dump_file, node); - dump_node(pbqp->dump_file, other_node); - dump_edge(pbqp->dump_file, edge); + pbqp_dump_node(pbqp->dump_file, node); + pbqp_dump_node(pbqp->dump_file, other_node); + pbqp_dump_edge(pbqp->dump_file, edge); } #endif @@ -1021,7 +1017,7 @@ void apply_RI(pbqp_t *pbqp) #if KAPS_DUMP if (pbqp->dump_file) { fputs("
\nAfter reduction:
\n", pbqp->dump_file); - dump_node(pbqp->dump_file, other_node); + pbqp_dump_node(pbqp->dump_file, other_node); } #endif @@ -1092,14 +1088,14 @@ void apply_RII(pbqp_t *pbqp) if (pbqp->dump_file) { char txt[100]; sprintf(txt, "RII-Reduction of Node n%d", node->index); - dump_section(pbqp->dump_file, 2, txt); + pbqp_dump_section(pbqp->dump_file, 2, txt); pbqp_dump_graph(pbqp); fputs("
\nBefore reduction:
\n", pbqp->dump_file); - dump_node(pbqp->dump_file, src_node); - dump_edge(pbqp->dump_file, src_edge); - dump_node(pbqp->dump_file, node); - dump_edge(pbqp->dump_file, tgt_edge); - dump_node(pbqp->dump_file, tgt_node); + pbqp_dump_node(pbqp->dump_file, src_node); + pbqp_dump_edge(pbqp->dump_file, src_edge); + pbqp_dump_node(pbqp->dump_file, node); + pbqp_dump_edge(pbqp->dump_file, tgt_edge); + pbqp_dump_node(pbqp->dump_file, tgt_node); } #endif @@ -1166,7 +1162,7 @@ void apply_RII(pbqp_t *pbqp) #if KAPS_DUMP if (pbqp->dump_file) { fputs("
\nAfter reduction:
\n", pbqp->dump_file); - dump_edge(pbqp->dump_file, edge); + pbqp_dump_edge(pbqp->dump_file, edge); } #endif