X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftr%2Ftype.c;h=8f252f8c0165c3ac241bfd10786394a24a36a104;hb=75ad3990591ea0913566d05276ef23b79c15d94c;hp=7553fb685ea322872b2753e660bba560de5185e7;hpb=43332529cf18bf9f2a0ecb384dc5dd0093eb3c8a;p=libfirm diff --git a/ir/tr/type.c b/ir/tr/type.c index 7553fb685..8f252f8c0 100644 --- a/ir/tr/type.c +++ b/ir/tr/type.c @@ -85,17 +85,8 @@ ir_type *get_unknown_type(void) static ident *value_params_suffix = NULL; static ident *value_ress_suffix = NULL; -/** The default calling convention for method types. */ -static unsigned default_cc_mask; - -unsigned get_default_cc_mask(void) +void ir_init_type(void) { - return default_cc_mask; -} - -void firm_init_type(unsigned def_cc_mask) -{ - default_cc_mask = def_cc_mask; value_params_suffix = new_id_from_str(VALUE_PARAMS_SUFFIX); value_ress_suffix = new_id_from_str(VALUE_RESS_SUFFIX); @@ -115,6 +106,24 @@ void firm_init_type(unsigned def_cc_mask) remove_irp_type(firm_unknown_type); } +void ir_finish_type(void) +{ + if (firm_none_type != NULL) { + free_type(firm_none_type); + firm_none_type = NULL; + } + if (firm_code_type != NULL) { + free_type(firm_code_type); + firm_code_type = NULL; + } + if (firm_unknown_type != NULL) { + free_type(firm_unknown_type); + firm_unknown_type = NULL; + } + value_params_suffix = NULL; + value_ress_suffix = NULL; +} + /** the global type visited flag */ ir_visited_t firm_type_visited; @@ -1215,7 +1224,6 @@ ir_type *new_d_type_method(int n_param, int n_res, type_dbg_info *db) res->attr.ma.variadicity = variadicity_non_variadic; res->attr.ma.first_variadic_param = -1; res->attr.ma.additional_properties = mtp_no_property; - res->attr.ma.irg_calling_conv = default_cc_mask; hook_new_type(res); return res; }