C99 features removed.
authorMichael Beck <mm.beck@gmx.net>
Sat, 9 Apr 2011 01:04:25 +0000 (03:04 +0200)
committerMichael Beck <mm.beck@gmx.net>
Sat, 9 Apr 2011 01:04:25 +0000 (03:04 +0200)
ir/be/bepbqpcoloring.c
ir/be/ia32/bearch_ia32.c
ir/kaps/html_dumper.c
ir/kaps/kaps.c
ir/kaps/matrix.c
ir/kaps/optimal.c
ir/kaps/pbqp_edge.c
ir/kaps/vector.c

index 0d67d4c..8d4f3dc 100644 (file)
@@ -621,7 +621,11 @@ static void be_pbqp_coloring(be_chordal_env_t *env)
        be_pbqp_alloc_env_t          pbqp_alloc_env;
        unsigned                     col;
        unsigned                     row;
-
+       pbqp_matrix_t               *ife_matrix;
+       num                          solution;
+#if KAPS_DUMP
+       FILE                        *file_before;
+#endif
 #if TIMER
        ir_timer_t *t_ra_pbqp_alloc_create     = ir_timer_new();
        ir_timer_t *t_ra_pbqp_alloc_solve      = ir_timer_new();
@@ -659,7 +663,7 @@ static void be_pbqp_coloring(be_chordal_env_t *env)
 
 
        /* create costs matrix template for interference edges */
-       pbqp_matrix_t *ife_matrix = pbqp_matrix_alloc(pbqp_alloc_env.pbqp_inst, colors_n, colors_n);
+       ife_matrix = pbqp_matrix_alloc(pbqp_alloc_env.pbqp_inst, colors_n, colors_n);
        /* set costs */
        for (row = 0, col = 0; row < colors_n; row++, col++)
                pbqp_matrix_set(ife_matrix, row, col, INF_COSTS);
@@ -709,18 +713,20 @@ static void be_pbqp_coloring(be_chordal_env_t *env)
 
 #if KAPS_DUMP
        // dump graph before solving pbqp
-       FILE *file_before = my_open(env, "", "-pbqp_coloring.html");
+       file_before = my_open(env, "", "-pbqp_coloring.html");
        set_dumpfile(pbqp_alloc_env.pbqp_inst, file_before);
 #endif
 
-       /* print out reverse perfect eleminiation order */
+       /* print out reverse perfect elimination order */
 #if PRINT_RPEO
-       plist_element_t *elements;
-       foreach_plist(pbqp_alloc_env.rpeo, elements) {
-               pbqp_node_t *node = elements->data;
-               printf(" %d(%lu);", node->index, get_idx_irn(irg, node->index)->node_nr);
+       {
+               plist_element_t *elements;
+               foreach_plist(pbqp_alloc_env.rpeo, elements) {
+                       pbqp_node_t *node = elements->data;
+                       printf(" %d(%ld);", node->index, get_idx_irn(irg, node->index)->node_nr);
+               }
+               printf("\n");
        }
-       printf("\n");
 #endif
 
        /* solve pbqp instance */
@@ -738,7 +744,7 @@ static void be_pbqp_coloring(be_chordal_env_t *env)
 #endif
 
 
-       num solution = get_solution(pbqp_alloc_env.pbqp_inst);
+       solution = get_solution(pbqp_alloc_env.pbqp_inst);
        if (solution == INF_COSTS)
                panic("No PBQP solution found");
 
index c5ea479..e1b4c56 100644 (file)
@@ -1258,15 +1258,14 @@ static void introduce_prolog_epilog(ir_graph *irg)
        ir_mode               *mode_gp    = mode_Iu;
 
        if (!layout->sp_relative) {
-               layout->initial_bias = -4;
-
                /* push ebp */
                ir_node *mem        = get_irg_initial_mem(irg);
                ir_node *noreg      = ia32_new_NoReg_gp(irg);
                ir_node *initial_bp = be_abi_get_ignore_irn(irg, bp);
                ir_node *curr_bp    = initial_bp;
-               ir_node *push
-                       = new_bd_ia32_Push(NULL, block, noreg, noreg, mem, curr_bp, curr_sp);
+               ir_node *push       = new_bd_ia32_Push(NULL, block, noreg, noreg, mem, curr_bp, curr_sp);
+               ir_node *incsp;
+
                curr_sp = new_r_Proj(push, mode_gp, pn_ia32_Push_stack);
                mem     = new_r_Proj(push, mode_M, pn_ia32_Push_M);
                arch_set_irn_register(curr_sp, sp);
@@ -1282,10 +1281,12 @@ static void introduce_prolog_epilog(ir_graph *irg)
                edges_reroute(initial_bp, curr_bp);
                set_irn_n(push, n_ia32_Push_val, initial_bp);
 
-               ir_node *incsp = be_new_IncSP(sp, block, curr_sp, frame_size, 0);
+               incsp = be_new_IncSP(sp, block, curr_sp, frame_size, 0);
                edges_reroute(initial_sp, incsp);
                set_irn_n(push, n_ia32_Push_stack, initial_sp);
                sched_add_after(curr_sp, incsp);
+
+               layout->initial_bias = -4;
        } else {
                ir_node *incsp = be_new_IncSP(sp, block, curr_sp, frame_size, 0);
                edges_reroute(initial_sp, incsp);
index f29a88d..d0809ea 100644 (file)
@@ -53,9 +53,9 @@ static const char *cost2a(num const cost)
 static void dump_vector(FILE *f, vector_t *vec)
 {
        unsigned index;
+       unsigned len = vec->len;
 
        fprintf(f, "<span class=\"vector\">( ");
-       unsigned len = vec->len;
        assert(len > 0);
        for (index = 0; index < len; ++index) {
 #if KAPS_ENABLE_VECTOR_NAMES
@@ -103,12 +103,13 @@ static void dump_edge_costs(pbqp_t *pbqp)
        fputs("<p>", pbqp->dump_file);
        for (src_index = 0; src_index < pbqp->num_nodes; ++src_index) {
                pbqp_node_t *src_node = get_node(pbqp, src_index);
+               unsigned edge_index;
+               unsigned len;
 
                if (!src_node)
                        continue;
 
-               unsigned edge_index;
-               unsigned len = ARR_LEN(src_node->edges);
+               len = ARR_LEN(src_node->edges);
                for (edge_index = 0; edge_index < len; ++edge_index) {
                        pbqp_edge_t *edge      = src_node->edges[edge_index];
                        unsigned     tgt_index = edge->tgt->index;
@@ -160,6 +161,8 @@ void pbqp_dump_graph(pbqp_t *pbqp)
 
        for (src_index = 0; src_index < pbqp->num_nodes; ++src_index) {
                pbqp_node_t *node = get_node(pbqp, src_index);
+               unsigned len;
+               unsigned edge_index;
 
                if (!node)
                        continue;
@@ -167,8 +170,7 @@ void pbqp_dump_graph(pbqp_t *pbqp)
                if (node_is_reduced(node))
                        continue;
 
-               unsigned len = ARR_LEN(node->edges);
-               unsigned edge_index;
+               len = ARR_LEN(node->edges);
                for (edge_index = 0; edge_index < len; ++edge_index) {
                        pbqp_node_t *tgt_node  = node->edges[edge_index]->tgt;
                        unsigned     tgt_index = tgt_node->index;
index 78b4c0d..63914d1 100644 (file)
@@ -46,6 +46,8 @@ pbqp_edge_t *get_edge(pbqp_t *pbqp, unsigned src_index, unsigned tgt_index)
 {
        int i;
        int len;
+       pbqp_node_t *src_node;
+       pbqp_node_t *tgt_node;
 
        if (tgt_index < src_index) {
                unsigned tmp = src_index;
@@ -53,8 +55,8 @@ pbqp_edge_t *get_edge(pbqp_t *pbqp, unsigned src_index, unsigned tgt_index)
                tgt_index    = tmp;
        }
 
-       pbqp_node_t *src_node = get_node(pbqp, src_index);
-       pbqp_node_t *tgt_node = get_node(pbqp, tgt_index);
+       src_node = get_node(pbqp, src_index);
+       tgt_node = get_node(pbqp, tgt_index);
        assert(tgt_node);
 
        len = ARR_LEN(src_node->edges);
index 47c1546..20e610b 100644 (file)
 
 pbqp_matrix_t *pbqp_matrix_alloc(pbqp_t *pbqp, unsigned rows, unsigned cols)
 {
-       assert(cols > 0);
-       assert(rows > 0);
-
        unsigned length = rows * cols;
-
        pbqp_matrix_t *mat = (pbqp_matrix_t*)obstack_alloc(&pbqp->obstack, sizeof(*mat) + sizeof(*mat->entries) * length);
 
+       assert(cols > 0);
+       assert(rows > 0);
+
        mat->cols = cols;
        mat->rows = rows;
        memset(mat->entries, 0, sizeof(*mat->entries) * length);
@@ -82,10 +81,11 @@ pbqp_matrix_t *pbqp_matrix_copy_and_transpose(pbqp_t *pbqp, pbqp_matrix_t *m)
 void pbqp_matrix_transpose(pbqp_t *pbqp, pbqp_matrix_t *mat)
 {
        unsigned len;
+       pbqp_matrix_t *tmp;
 
        len = mat->rows * mat->cols;
 
-       pbqp_matrix_t *tmp = pbqp_matrix_copy_and_transpose(pbqp, mat);
+       tmp = pbqp_matrix_copy_and_transpose(pbqp, mat);
 
        memcpy(mat, tmp, sizeof(*mat) + sizeof(*mat->entries) * len);
 
@@ -148,16 +148,18 @@ num pbqp_matrix_get_col_min(pbqp_matrix_t *matrix, unsigned col_index, vector_t
        unsigned row_index;
        num min = INF_COSTS;
 
-       assert(matrix->rows == flags->len);
-
        unsigned col_len = matrix->cols;
        unsigned row_len = matrix->rows;
 
+       assert(matrix->rows == flags->len);
+
        for (row_index = 0; row_index < row_len; ++row_index) {
+               num elem;
+
                /* Ignore virtual deleted columns. */
                if (flags->entries[row_index].data == INF_COSTS) continue;
 
-               num elem = matrix->entries[row_index * col_len + col_index];
+               elem = matrix->entries[row_index * col_len + col_index];
 
                if (elem < min) {
                        min = elem;
@@ -173,16 +175,18 @@ unsigned pbqp_matrix_get_col_min_index(pbqp_matrix_t *matrix, unsigned col_index
        unsigned min_index = 0;
        num      min       = INF_COSTS;
 
-       assert(matrix->rows == flags->len);
-
        unsigned col_len = matrix->cols;
        unsigned row_len = matrix->rows;
 
+       assert(matrix->rows == flags->len);
+
        for (row_index = 0; row_index < row_len; ++row_index) {
+               num elem;
+
                /* Ignore virtual deleted columns. */
                if (flags->entries[row_index].data == INF_COSTS) continue;
 
-               num elem = matrix->entries[row_index * col_len + col_index];
+               elem = matrix->entries[row_index * col_len + col_index];
 
                if (elem < min) {
                        min = elem;
@@ -223,15 +227,17 @@ num pbqp_matrix_get_row_min(pbqp_matrix_t *matrix, unsigned row_index, vector_t
        unsigned col_index;
        num min = INF_COSTS;
 
-       assert(matrix->cols == flags->len);
-
        unsigned len = flags->len;
 
+       assert(matrix->cols == len);
+
        for (col_index = 0; col_index < len; ++col_index) {
+               num elem;
+
                /* Ignore virtual deleted columns. */
                if (flags->entries[col_index].data == INF_COSTS) continue;
 
-               num elem = matrix->entries[row_index * len + col_index];
+               elem = matrix->entries[row_index * len + col_index];
 
                if (elem < min) {
                        min = elem;
@@ -247,15 +253,17 @@ unsigned pbqp_matrix_get_row_min_index(pbqp_matrix_t *matrix, unsigned row_index
        unsigned min_index = 0;
        num      min       = INF_COSTS;
 
-       assert(matrix->cols == flags->len);
-
        unsigned len = flags->len;
 
+       assert(matrix->cols == len);
+
        for (col_index = 0; col_index < len; ++col_index) {
+               num elem;
+
                /* Ignore virtual deleted columns. */
                if (flags->entries[col_index].data == INF_COSTS) continue;
 
-               num elem = matrix->entries[row_index * len + col_index];
+               elem = matrix->entries[row_index * len + col_index];
 
                if (elem < min) {
                        min = elem;
index 3dfdd2f..94ccecc 100644 (file)
@@ -1046,6 +1046,7 @@ void apply_RII(pbqp_t *pbqp)
        pbqp_matrix_t *tgt_mat;
        pbqp_node_t   *src_node;
        pbqp_node_t   *tgt_node;
+       pbqp_edge_t   *edge;
        pbqp_matrix_t *mat;
        vector_t      *vec;
        vector_t      *node_vec;
@@ -1138,7 +1139,7 @@ void apply_RII(pbqp_t *pbqp)
                }
        }
 
-       pbqp_edge_t *edge = get_edge(pbqp, src_node->index, tgt_node->index);
+       edge = get_edge(pbqp, src_node->index, tgt_node->index);
 
        /* Disconnect node. */
        disconnect_edge(src_node, src_edge);
index 1a90497..da9ea5c 100644 (file)
@@ -42,6 +42,9 @@ pbqp_edge_t *alloc_edge(pbqp_t *pbqp, int src_index, int tgt_index,
                         pbqp_matrix_t *costs)
 {
        int transpose = 0;
+       pbqp_edge_t *edge = OALLOC(&pbqp->obstack, pbqp_edge_t);
+       pbqp_node_t *src_node;
+       pbqp_node_t *tgt_node;
 
        if (tgt_index < src_index) {
                int tmp = src_index;
@@ -51,11 +54,9 @@ pbqp_edge_t *alloc_edge(pbqp_t *pbqp, int src_index, int tgt_index,
                transpose = 1;
        }
 
-       pbqp_edge_t *edge = OALLOC(&pbqp->obstack, pbqp_edge_t);
-
-       pbqp_node_t *src_node = get_node(pbqp, src_index);
+       src_node = get_node(pbqp, src_index);
 
-       pbqp_node_t *tgt_node = get_node(pbqp, tgt_index);
+       tgt_node = get_node(pbqp, tgt_index);
 
        if (transpose) {
                edge->costs = pbqp_matrix_copy_and_transpose(pbqp, costs);
index 4970d08..063265d 100644 (file)
 
 num pbqp_add(num x, num y)
 {
+       num res;
+
        if (x == INF_COSTS || y == INF_COSTS) return INF_COSTS;
 
-       num res = x + y;
+       res = x + y;
 
 #if !KAPS_USE_UNSIGNED
        /* No positive overflow. */
@@ -56,8 +58,8 @@ num pbqp_add(num x, num y)
 
 vector_t *vector_alloc(pbqp_t *pbqp, unsigned length)
 {
-       assert(length > 0);
        vector_t *vec = (vector_t*)obstack_alloc(&pbqp->obstack, sizeof(*vec) + sizeof(*vec->entries) * length);
+       assert(length > 0);
 
        vec->len = length;
        memset(vec->entries, 0, sizeof(*vec->entries) * length);