cleanup vrp
[libfirm] / ir / lower / lower_softfloat.c
index 9917311..0813381 100644 (file)
@@ -37,6 +37,7 @@
 #include "irgwalk.h"
 #include "irmode.h"
 #include "iropt_dbg.h"
+#include "iroptimize.h"
 #include "irprog_t.h"
 #include "lower_softfloat.h"
 #include "lowering.h"
@@ -140,7 +141,6 @@ static ir_type *get_softfloat_type(const ir_node *n)
 
        switch (opcode) {
        case iro_Div:
-               mode         = get_Div_resmode(n);
                operand_mode = get_irn_mode(get_Div_left(n));
                /* fall through */
        case iro_Add:
@@ -317,10 +317,8 @@ static ir_node *create_softfloat_symconst(const ir_node *n, const char *name)
        else
                snprintf(buf, sizeof(buf), "__%s%s%s%s", name, first_param, second_param, result);
 
-       id  = new_id_from_str(buf);
-       ent = new_entity(get_glob_type(), id, method);
-
-       set_entity_ld_ident(ent, get_entity_ident(ent));
+       id           = new_id_from_str(buf);
+       ent          = create_compilerlib_entity(id, method);
        sym.entity_p = ent;
 
        return new_r_SymConst(irg, mode_P_code, sym, symconst_addr_ent);
@@ -380,7 +378,7 @@ static ir_type *lower_method_type(ir_type *mtp)
        size_t   n_param;
        size_t   n_res;
 
-       res = (ir_type*)pmap_get(lowered_type, mtp);
+       res = pmap_get(ir_type, lowered_type, mtp);
        if (res != NULL)
                return res;
 
@@ -415,7 +413,7 @@ static ir_type *lower_method_type(ir_type *mtp)
        set_method_calling_convention(res, get_method_calling_convention(mtp));
        set_method_additional_properties(res, get_method_additional_properties(mtp));
 
-       set_lowered_type(mtp, res);
+       set_higher_type(res, mtp);
 
        pmap_insert(lowered_type, mtp, res);
        return res;
@@ -602,23 +600,19 @@ static const tarval_mode_info hex_output = {
  */
 static void lower_Const(ir_node *n)
 {
-       ir_mode   *lowered_mode;
-       ir_mode   *mode         = get_irn_mode(n);
-       ir_tarval *tv = get_Const_tarval(n);
-       char       buf[100];
-       size_t     len;
-
-       if (! mode_is_float(mode))
+       ir_mode *mode = get_irn_mode(n);
+       if (!mode_is_float(mode))
                return;
 
-       lowered_mode = get_lowered_mode(mode);
+       ir_mode *lowered_mode = get_lowered_mode(mode);
        set_irn_mode(n, lowered_mode);
 
        set_tarval_mode_output_option(mode, &hex_output);
-       tarval_snprintf(buf, 100, get_Const_tarval(n));
+       char buf[100];
+       tarval_snprintf(buf, sizeof(buf), get_Const_tarval(n));
 
-       len = strlen(buf);
-       tv  = new_tarval_from_str(buf, len, lowered_mode);
+       size_t     len = strlen(buf);
+       ir_tarval *tv  = new_tarval_from_str(buf, len, lowered_mode);
        set_Const_tarval(n, tv);
 }
 
@@ -695,16 +689,14 @@ static void lower_Conv(ir_node *n)
  */
 static void lower_Div(ir_node *n)
 {
-       ir_node         *symconst;
-       ir_node         *block       = get_nodes_block(n);
-       ir_node         *call_result = NULL;
-       dbg_info        *dbgi        = get_irn_dbg_info(n);
-       ir_graph        *irg         = get_irn_irg(n);
-       ir_node         *left        = get_Div_left(n);
-       ir_mode         *mode        = get_Div_resmode(n);
-       ir_node         *right       = get_Div_right(n);
-       const ir_edge_t *edge;
-       const ir_edge_t *next;
+       ir_node  *symconst;
+       ir_node  *block       = get_nodes_block(n);
+       ir_node  *call_result = NULL;
+       dbg_info *dbgi        = get_irn_dbg_info(n);
+       ir_graph *irg         = get_irn_irg(n);
+       ir_node  *left        = get_Div_left(n);
+       ir_mode  *mode        = get_Div_resmode(n);
+       ir_node  *right       = get_Div_right(n);
 
        if (! mode_is_float(mode))
                return;
@@ -724,7 +716,7 @@ static void lower_Div(ir_node *n)
 
        set_irn_pinned(call, get_irn_pinned(n));
 
-       foreach_out_edge_safe(n, edge, next) {
+       foreach_out_edge_safe(n, edge) {
                ir_node *proj = get_edge_src_irn(edge);
                if (! is_Proj(proj))
                        continue;
@@ -1062,7 +1054,7 @@ void lower_floating_point(void)
 
        ir_prepare_softfloat_lowering();
 
-       clear_irp_opcodes_generic_func();
+       ir_clear_opcodes_generic_func();
        ir_register_softloat_lower_function(op_Add,   lower_Add);
        ir_register_softloat_lower_function(op_Cmp,   lower_Cmp);
        ir_register_softloat_lower_function(op_Conv,  lower_Conv);
@@ -1076,7 +1068,7 @@ void lower_floating_point(void)
 
                ir_nodeset_init(&created_mux_nodes);
 
-               edges_assure(irg);
+               assure_edges(irg);
 
                irg_walk_graph(irg, NULL, lower_node, NULL);
 
@@ -1086,7 +1078,7 @@ void lower_floating_point(void)
                ir_nodeset_destroy(&created_mux_nodes);
        }
 
-       clear_irp_opcodes_generic_func();
+       ir_clear_opcodes_generic_func();
        ir_register_softloat_lower_function(op_Call,  lower_Call);
        ir_register_softloat_lower_function(op_Const, lower_Const);
        ir_register_softloat_lower_function(op_Div,   lower_Div_mode);