remove unused support for max_loop_depth
[libfirm] / ir / tr / type.c
index 88144aa..f6d14c5 100644 (file)
@@ -64,6 +64,8 @@
 
 #include "array.h"
 
+static ir_type *new_type(tp_op const *type_op, ir_mode *mode, type_dbg_info *db);
+
 ir_type *get_none_type(void)
 {
        return irp->none_type;
@@ -118,7 +120,17 @@ void (inc_master_type_visited)(void)
        _inc_master_type_visited();
 }
 
-ir_type *new_type(const tp_op *type_op, ir_mode *mode, type_dbg_info *db)
+/**
+ *   Creates a new type representation:
+ *
+ *   @param type_op  the kind of this type.  May not be type_id.
+ *   @param mode     the mode to be used for this type, may be NULL
+ *   @param db       debug info
+ *
+ *   @return A new type of the given type.  The remaining private attributes are
+ *           not initialized.  The type is in state layout_undefined.
+ */
+static ir_type *new_type(tp_op const *type_op, ir_mode *mode, type_dbg_info *db)
 {
        ir_type *res;
        size_t node_size;
@@ -256,11 +268,7 @@ void set_type_visibility(ir_type *tp, ir_visibility v)
 void set_type_size_bytes(ir_type *tp, unsigned size)
 {
        const tp_op *tpop = get_type_tpop(tp);
-
-       if (tpop->ops.set_type_size)
-               tpop->ops.set_type_size(tp, size);
-       else
-               assert(0 && "Cannot set size for this type");
+       tpop->ops.set_type_size(tp, size);
 }
 
 unsigned get_type_alignment_bytes(ir_type *tp)
@@ -1129,14 +1137,14 @@ ir_type *new_d_type_method(size_t n_param, size_t n_res, type_dbg_info *db)
 
        assert((get_mode_size_bits(mode_P_code) % 8 == 0) && "unorthodox modes not implemented");
        res = new_type(type_method, mode_P_code, db);
-       res->flags                       |= tf_layout_fixed;
-       res->size                         = get_mode_size_bytes(mode_P_code);
-       res->attr.ma.n_params             = n_param;
-       res->attr.ma.params               = XMALLOCNZ(tp_ent_pair, n_param);
-       res->attr.ma.n_res                = n_res;
-       res->attr.ma.res_type             = XMALLOCNZ(tp_ent_pair, n_res);
-       res->attr.ma.variadicity          = variadicity_non_variadic;
-       res->attr.ma.additional_properties = mtp_no_property;
+       res->flags               |= tf_layout_fixed;
+       res->size                 = get_mode_size_bytes(mode_P_code);
+       res->attr.ma.n_params     = n_param;
+       res->attr.ma.params       = XMALLOCNZ(tp_ent_pair, n_param);
+       res->attr.ma.n_res        = n_res;
+       res->attr.ma.res_type     = XMALLOCNZ(tp_ent_pair, n_res);
+       res->attr.ma.variadicity  = variadicity_non_variadic;
+       res->attr.ma.properties   = mtp_no_property;
        hook_new_type(res);
        return res;
 }
@@ -1163,18 +1171,18 @@ ir_type *clone_type_method(ir_type *tp)
 
        res = new_type(type_method, mode, db);
 
-       res->flags                         = tp->flags;
-       res->higher_type                   = tp->higher_type;
-       res->size                          = tp->size;
-       res->attr.ma.n_params              = n_params;
-       res->attr.ma.params                = XMALLOCN(tp_ent_pair, n_params);
+       res->flags                    = tp->flags;
+       res->higher_type              = tp->higher_type;
+       res->size                     = tp->size;
+       res->attr.ma.n_params         = n_params;
+       res->attr.ma.params           = XMALLOCN(tp_ent_pair, n_params);
        memcpy(res->attr.ma.params, tp->attr.ma.params, n_params * sizeof(res->attr.ma.params[0]));
-       res->attr.ma.n_res                 = n_res;
-       res->attr.ma.res_type              = XMALLOCN(tp_ent_pair, n_res);
+       res->attr.ma.n_res            = n_res;
+       res->attr.ma.res_type         = XMALLOCN(tp_ent_pair, n_res);
        memcpy(res->attr.ma.res_type, tp->attr.ma.res_type, n_res * sizeof(res->attr.ma.res_type[0]));
-       res->attr.ma.variadicity           = tp->attr.ma.variadicity;
-       res->attr.ma.additional_properties = tp->attr.ma.additional_properties;
-       res->attr.ma.irg_calling_conv      = tp->attr.ma.irg_calling_conv;
+       res->attr.ma.variadicity      = tp->attr.ma.variadicity;
+       res->attr.ma.properties       = tp->attr.ma.properties;
+       res->attr.ma.irg_calling_conv = tp->attr.ma.irg_calling_conv;
        hook_new_type(res);
        return res;
 }
@@ -1539,7 +1547,6 @@ long get_array_lower_bound_int(const ir_type *array, size_t dimension)
        ir_node *node;
        assert(array->type_op == type_array);
        node = array->attr.aa.lower_bound[dimension];
-       assert(is_Const(node));
        return get_tarval_long(get_Const_tarval(node));
 }
 
@@ -1560,7 +1567,6 @@ long get_array_upper_bound_int(const ir_type *array, size_t dimension)
        ir_node *node;
        assert(array->type_op == type_array);
        node = array->attr.aa.upper_bound[dimension];
-       assert(is_Const(node));
        return get_tarval_long(get_Const_tarval(node));
 }