X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firargs.c;h=b2e292ef1cc2ba6118ffc655db9c3cff6b9d479e;hb=b78bdd4d94de46de4156272e6dbfe44e97933a5b;hp=9bf7b3c8a41bfe2a96c44206953d99f868b82dd5;hpb=e70b123a3da6a0b66c58a721c4108edc2a9493d7;p=libfirm diff --git a/ir/ir/irargs.c b/ir/ir/irargs.c index 9bf7b3c8a..b2e292ef1 100644 --- a/ir/ir/irargs.c +++ b/ir/ir/irargs.c @@ -55,7 +55,7 @@ static int bitset_emit(lc_appendable_t *app, const char *prefix = ""; lc_arg_append(app, occ, "[", 1); - for(p = bitset_next_set(b, 0); p != -1; p = bitset_next_set(b, p)) { + bitset_foreach(b, p) { int n; n = snprintf(buf, sizeof(buf), "%s%d", prefix, (int) p); @@ -109,7 +109,7 @@ static int firm_emit(lc_appendable_t *app, ir_node *block; char add[64]; char buf[256]; - char tv[256]; + char tv_buf[256]; entity *ent; buf[0] = '\0'; @@ -133,7 +133,10 @@ static int firm_emit(lc_appendable_t *app, snprintf(add, sizeof(add), "[%ld]", get_type_nr(X)); break; case k_ir_graph: - snprintf(buf, sizeof(buf), "%s%s", A("irg"), get_entity_name(get_irg_entity(X))); + if (X == get_const_code_irg()) + snprintf(buf, sizeof(buf), "%s", A("irg")); + else + snprintf(buf, sizeof(buf), "%s%s", A("irg"), get_entity_name(get_irg_entity(X))); snprintf(add, sizeof(add), "[%ld]", get_irg_graph_nr(X)); break; case k_ir_node: @@ -149,25 +152,29 @@ static int firm_emit(lc_appendable_t *app, break; default: if (is_Const(X)) { - tarval_snprintf(tv, sizeof(tv), get_Const_tarval(X)); + tarval *tv = get_Const_tarval(X); + if (tv) + tarval_snprintf(tv_buf, sizeof(tv_buf), tv); + else + strncpy(tv_buf, "(NULL)", sizeof(tv_buf)); snprintf(buf, sizeof(buf), "%s%s%s<%s>", A("irn"), get_irn_opname(X), - get_mode_name(get_irn_mode(X)), tv); + get_mode_name(get_irn_mode(X)), tv_buf); } else snprintf(buf, sizeof(buf), "%s%s%s", A("irn"), get_irn_opname(X), get_mode_name(get_irn_mode(X))); - snprintf(add, sizeof(add), "[%ld]", get_irn_node_nr(X)); + snprintf(add, sizeof(add), "[%ld:%d]", get_irn_node_nr(X), get_irn_idx(X)); } break; case k_ir_mode: snprintf(buf, sizeof(buf), "%s%s", A("mode"), get_mode_name(X)); break; case k_tarval: - tarval_snprintf(tv, sizeof(tv), X); - snprintf(buf, sizeof(buf), "%s%s", A("tv"), tv); + tarval_snprintf(tv_buf, sizeof(tv_buf), X); + snprintf(buf, sizeof(buf), "%s%s", A("tv"), tv_buf); break; case k_ir_loop: - snprintf(buf, sizeof(buf), "ldepth[%d]", get_loop_depth(X)); + snprintf(buf, sizeof(buf), "loop[%d:%d]", get_loop_loop_nr(X), get_loop_depth(X)); break; case k_ir_op: snprintf(buf, sizeof(buf), "%s%s", A("op"), get_op_name(X)); @@ -188,6 +195,10 @@ static int firm_emit(lc_appendable_t *app, } add[0] = '\0'; break; + case k_ir_extblk: + snprintf(buf, sizeof(buf), "ExtBlock"); + snprintf(add, sizeof(add), "[%ld]", get_irn_node_nr(get_extbb_leader(X))); + break; default: snprintf(buf, sizeof(buf), "UNKWN"); @@ -222,7 +233,7 @@ static int firm_emit_indent(lc_appendable_t *app, const lc_arg_occ_t *occ, const lc_arg_value_t *arg) { int i; - int amount = arg->v_int; + int amount = arg->v_int * (occ->width > 0 ? occ->width : 1); for(i = 0; i < amount; ++i) lc_appendable_chadd(app, ' '); @@ -268,7 +279,6 @@ lc_arg_env_t *firm_get_arg_env(void) X("irn_nr", 'N'), X("mode", 'm'), X("block", 'B'), - X("pnc", '='), X("cg_path", 'P'), }; @@ -282,11 +292,11 @@ lc_arg_env_t *firm_get_arg_env(void) for (i = 0; i < sizeof(args)/sizeof(args[0]); ++i) lc_arg_register(env, args[i].name, args[i].letter, &firm_handler); - lc_arg_register(env, "firm:ident", 'I', &ident_handler); - lc_arg_register(env, "firm:indent", 'D', &indent_handler); - lc_arg_register(env, "firm:pnc", '=', &pnc_handler); + lc_arg_register(env, "firm:ident", 'I', &ident_handler); + lc_arg_register(env, "firm:indent", '>', &indent_handler); lc_arg_register(env, "firm:dbg_info", 'G', &debug_handler); - /* lc_arg_register(env, "firm:bitset", 'b', &bitset_handler); */ + lc_arg_register(env, "firm:bitset", 'B', &bitset_handler); + lc_arg_register(env, "firm:pnc", '=', &pnc_handler); } return env;