X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ir%2Fir%2Firargs.c;h=eb0ea217771b1ebae38cdce40823a4102c8920a7;hb=3c3425a50a1d721b74a015c6812257e32feeac85;hp=14f1ea0c59f8335baa41d7ada2ed2a736b38a955;hpb=573f2284df8276913dfcf63c795cc6cfbe15462a;p=libfirm diff --git a/ir/ir/irargs.c b/ir/ir/irargs.c index 14f1ea0c5..eb0ea2177 100644 --- a/ir/ir/irargs.c +++ b/ir/ir/irargs.c @@ -21,7 +21,6 @@ * @file * @brief Support for libcore IR object output. * @author Sebastian Hack - * @version $Id$ */ #include "config.h" @@ -37,6 +36,7 @@ #include "irloop_t.h" #include "tv_t.h" #include "dbginfo_t.h" +#include "util.h" /** * identify a firm object type @@ -66,7 +66,6 @@ static int bitset_emit(lc_appendable_t *app, { int res = 2; bitset_t *b = (bitset_t*)arg->v_ptr; - size_t p; char buf[32]; const char *prefix = ""; @@ -118,12 +117,10 @@ static int firm_emit(lc_appendable_t *app, void *X = (void*)arg->v_ptr; firm_kind *obj = (firm_kind*)X; - size_t i, n; ir_node *block; char add[64]; char buf[256]; char tv_buf[256]; - ir_entity *ent; buf[0] = '\0'; add[0] = '\0'; @@ -187,8 +184,12 @@ static int firm_emit(lc_appendable_t *app, snprintf(buf, sizeof(buf), "%s%s %s[%s]", A("irn"), get_irn_opname(node), get_mode_name(get_irn_mode(node)), get_entity_name(get_SymConst_entity(node))); } else if (is_Sel(node)) { + ir_entity *entity = get_Sel_entity(node); + const char *entity_name = "(null)"; + if (entity != NULL) + entity_name = get_entity_name(entity); snprintf(buf, sizeof(buf), "%s%s %s[%s]", A("irn"), get_irn_opname(node), - get_mode_name(get_irn_mode(node)), get_entity_name(get_Sel_entity(node))); + get_mode_name(get_irn_mode(node)), entity_name); } else if (is_Cmp(node)) { ir_relation relation = get_Cmp_relation(node); snprintf(buf, sizeof(buf), "%s%s %s", A("irn"), get_irn_opname(node), get_relation_string(relation)); @@ -221,30 +222,6 @@ static int firm_emit(lc_appendable_t *app, snprintf(buf, sizeof(buf), "%s%s", A("op"), get_op_name(op)); break; } - case k_ir_compound_graph_path: { - compound_graph_path *path = (compound_graph_path*)X; - n = get_compound_graph_path_length(path); - - for (i = 0; i < n; ++i) { - ent = get_compound_graph_path_node(path, i); - - strncat(buf, ".", sizeof(buf)-1); - strncat(buf, get_entity_name(ent), sizeof(buf)-1); - if (is_Array_type(get_entity_owner(ent))) { - snprintf(add, sizeof(add), "[%ld]", - get_compound_graph_path_array_index(path, i)); - strncat(buf, add, sizeof(buf)-1); - } - } - add[0] = '\0'; - break; - } - case k_ir_extblk: { - ir_extblk *extblk = (ir_extblk*)X; - snprintf(buf, sizeof(buf), "ExtBlock"); - snprintf(add, sizeof(add), "[%ld]", get_irn_node_nr(get_extbb_leader(extblk))); - break; - } default: snprintf(buf, sizeof(buf), "UNKWN"); @@ -292,7 +269,7 @@ static int firm_emit_indent(lc_appendable_t *app, static int firm_emit_pnc(lc_appendable_t *app, const lc_arg_occ_t *occ, const lc_arg_value_t *arg) { - int value = arg->v_int; + ir_relation value = (ir_relation)arg->v_int; const char *p = get_relation_string(value); return lc_arg_append(app, occ, p, strlen(p)); @@ -323,7 +300,6 @@ lc_arg_env_t *firm_get_arg_env(void) {"firm:irn_nr", 'N'}, {"firm:mode", 'm'}, {"firm:block", 'B'}, - {"firm:cg_path", 'P'}, }; size_t i; @@ -333,7 +309,7 @@ lc_arg_env_t *firm_get_arg_env(void) lc_arg_add_std(env); lc_arg_register(env, "firm", 'F', &firm_handler); - for (i = 0; i < sizeof(args)/sizeof(args[0]); ++i) + for (i = 0; i != ARRAY_SIZE(args); ++i) lc_arg_register(env, args[i].name, args[i].letter, &firm_handler); lc_arg_register(env, "firm:ident", 'I', &ident_handler);