tv: Remove mul_table[][][] and simply use * and <<.
[libfirm] / ir / be / beirgmod.c
index c63e853..bf6506c 100644 (file)
@@ -51,7 +51,7 @@
 #include "irgraph_t.h"
 #include "irgopt.h"
 #include "irgmod.h"
-#include "irprintf_t.h"
+#include "irprintf.h"
 #include "irgwalk.h"
 
 #include "be_t.h"
@@ -87,21 +87,19 @@ static int cmp_node_nr(const void *a, const void *b)
 
 */
 
-ir_node *insert_Perm_after(ir_graph *irg, const arch_register_class_t *cls,
+ir_node *insert_Perm_before(ir_graph *irg, const arch_register_class_t *cls,
                                                   ir_node *pos)
 {
-       be_lv_t *lv     = be_get_irg_liveness(irg);
-       ir_node *bl     = is_Block(pos) ? pos : get_nodes_block(pos);
-       ir_nodeset_t          live;
-       ir_nodeset_iterator_t iter;
+       be_lv_t     *lv = be_get_irg_liveness(irg);
+       ir_nodeset_t live;
 
-       ir_node *irn, *perm, **nodes;
+       ir_node *perm, **nodes;
        size_t i, n;
 
-       DBG((dbg, LEVEL_1, "Insert Perm after: %+F\n", pos));
+       DBG((dbg, LEVEL_1, "Insert Perm before: %+F\n", pos));
 
        ir_nodeset_init(&live);
-       be_liveness_nodes_live_at(lv, cls, pos, &live);
+       be_liveness_nodes_live_before(lv, cls, pos, &live);
 
        n = ir_nodeset_size(&live);
        if (n == 0) {
@@ -122,18 +120,17 @@ ir_node *insert_Perm_after(ir_graph *irg, const arch_register_class_t *cls,
        /* make the input order deterministic */
        qsort(nodes, n, sizeof(nodes[0]), cmp_node_nr);
 
+       ir_node *const bl = get_nodes_block(pos);
        perm = be_new_Perm(cls, bl, n, nodes);
-       sched_add_after(pos, perm);
+       sched_add_before(pos, perm);
        free(nodes);
 
        for (i = 0; i < n; ++i) {
                ir_node *perm_op = get_irn_n(perm, i);
-               const arch_register_t *reg = arch_get_irn_register(perm_op);
                be_ssa_construction_env_t senv;
 
                ir_mode *mode = get_irn_mode(perm_op);
                ir_node *proj = new_r_Proj(perm, mode, i);
-               arch_set_irn_register(proj, reg);
 
                be_ssa_construction_init(&senv, irg);
                be_ssa_construction_add_copy(&senv, perm_op);
@@ -158,7 +155,6 @@ static void remove_empty_block(ir_node *block)
 {
        int        i;
        int        arity;
-       ir_node   *node;
        ir_node   *pred;
        ir_node   *succ_block;
        ir_node   *jump = NULL;
@@ -212,7 +208,7 @@ static void remove_empty_block(ir_node *block)
        /* there can be some non-scheduled Pin nodes left in the block, move them
         * to the succ block (Pin) or pred block (Sync) */
        foreach_out_edge_safe(block, edge) {
-               node = get_edge_src_irn(edge);
+               ir_node *const node = get_edge_src_irn(edge);
 
                if (node == jump)
                        continue;