X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firargs.c;h=66bbd7f719d32d7ab876df4556d1c73938612cb0;hb=b597c7fd473086ca6374b2abbdf129f595c156d0;hp=5a24e4f5f58cb703434bb1bc0e2fce968b475a85;hpb=30b10839b1a7b962b31803e0b23c23bc72502c6d;p=libfirm diff --git a/ir/ir/irargs.c b/ir/ir/irargs.c index 5a24e4f5f..66bbd7f71 100644 --- a/ir/ir/irargs.c +++ b/ir/ir/irargs.c @@ -1,26 +1,39 @@ /* - * Project: libFIRM - * File name: ir/ir/irargs.c - * Purpose: Support for libcore IR object output. - * Author: Sebastian Hack - * Modified by: - * Created: - * CVS-ID: $Id$ - * Copyright: (c) 1998-2005 Universitaet Karlsruhe - * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. + * + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. + * + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. */ +/** + * @file + * @brief Support for libcore IR object output. + * @author Sebastian Hack + * @version $Id$ + */ #ifdef HAVE_CONFIG_H # include "config.h" #endif -#ifdef WITH_LIBCORE +#include "firm_config.h" #include "bitset.h" #include -#include +#include "lc_printf.h" #include "firm_common.h" #include "irnode_t.h" #include "entity_t.h" @@ -32,16 +45,19 @@ * identify a firm object type */ static int firm_get_arg_type(const lc_arg_occ_t *occ) { + (void) occ; /* Firm objects are always pointer */ return lc_arg_type_ptr; } static int firm_get_arg_type_int(const lc_arg_occ_t *occ) { + (void) occ; return lc_arg_type_int; } static int bitset_get_arg_type(const lc_arg_occ_t *occ) { + (void) occ; return lc_arg_type_ptr; } @@ -89,7 +105,7 @@ static int firm_emit_dbg(lc_appendable_t *app, /** * Beware: do not set the entity ld_name */ -static const char *get_entity_ld_name_ex(entity *ent) { +static const char *get_entity_ld_name_ex(ir_entity *ent) { if (ent->ld_name) return get_entity_ld_name(ent); return get_entity_name(ent); @@ -110,7 +126,7 @@ static int firm_emit(lc_appendable_t *app, char add[64]; char buf[256]; char tv_buf[256]; - entity *ent; + ir_entity *ent; buf[0] = '\0'; add[0] = '\0'; @@ -133,7 +149,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: @@ -171,7 +190,7 @@ static int firm_emit(lc_appendable_t *app, 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)); @@ -230,10 +249,11 @@ 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 * (occ->width > 0 ? occ->width : 1); + int width = occ->width > 0 ? occ->width : 1; + int amount = arg->v_int * width; for(i = 0; i < amount; ++i) - lc_appendable_chadd(app, ' '); + lc_appendable_chadd(app, (i % width) == 0 ? '|' : ' '); return amount; } @@ -252,7 +272,6 @@ static int firm_emit_pnc(lc_appendable_t *app, lc_arg_env_t *firm_get_arg_env(void) { -#define X(name, letter) {"firm:" name, letter} static lc_arg_env_t *env = NULL; @@ -267,6 +286,7 @@ lc_arg_env_t *firm_get_arg_env(void) const char *name; char letter; } args[] = { +#define X(name, letter) {"firm:" name, letter} X("type", 't'), X("entity", 'e'), X("entity_ld", 'E'), @@ -276,11 +296,11 @@ 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'), +#undef X }; - int i; + size_t i; if(env == NULL) { env = lc_arg_new_env(); @@ -291,12 +311,11 @@ lc_arg_env_t *firm_get_arg_env(void) 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", '>', &indent_handler); + lc_arg_register(env, "firm:indent", 'D', &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:pnc", '=', &pnc_handler); } return env; } - -#endif /* WITH_LIBCORE */