From: Matthias Braun Date: Fri, 4 Aug 2006 14:15:25 +0000 (+0000) Subject: - new spillslots dump phase X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=ff9b23893ba556b55fb18b0203a804179a4ea5d4;p=libfirm - new spillslots dump phase --- diff --git a/ir/be/bechordal_main.c b/ir/be/bechordal_main.c index f9ab17c57..a2d03927c 100644 --- a/ir/be/bechordal_main.c +++ b/ir/be/bechordal_main.c @@ -173,16 +173,17 @@ static const lc_opt_enum_int_items_t lower_perm_stat_items[] = { }; static const lc_opt_enum_int_items_t dump_items[] = { - { "spill", BE_CH_DUMP_SPILL }, - { "live", BE_CH_DUMP_LIVE }, - { "color", BE_CH_DUMP_COLOR }, - { "copymin", BE_CH_DUMP_COPYMIN }, - { "ssadestr", BE_CH_DUMP_SSADESTR }, - { "tree", BE_CH_DUMP_TREE_INTV }, - { "constr", BE_CH_DUMP_CONSTR }, - { "lower", BE_CH_DUMP_LOWER }, - { "appel", BE_CH_DUMP_APPEL }, - { "all", BE_CH_DUMP_ALL }, + { "spill", BE_CH_DUMP_SPILL }, + { "live", BE_CH_DUMP_LIVE }, + { "color", BE_CH_DUMP_COLOR }, + { "copymin", BE_CH_DUMP_COPYMIN }, + { "ssadestr", BE_CH_DUMP_SSADESTR }, + { "tree", BE_CH_DUMP_TREE_INTV }, + { "constr", BE_CH_DUMP_CONSTR }, + { "lower", BE_CH_DUMP_LOWER }, + { "spillslots", BE_CH_DUMP_SPILLSLOTS }, + { "appel", BE_CH_DUMP_APPEL }, + { "all", BE_CH_DUMP_ALL }, { NULL, 0 } }; @@ -575,6 +576,7 @@ static be_ra_timer_t *be_ra_chordal_main(const be_irg_t *bi) } be_coalesce_spillslots(&chordal_env); + dump(BE_CH_DUMP_SPILLSLOTS, irg, NULL, "-spillslots", dump_ir_block_graph_sched); BE_TIMER_PUSH(ra_timer.t_epilog); diff --git a/ir/be/bechordal_t.h b/ir/be/bechordal_t.h index 9f6e70eb4..3c7e7bb27 100644 --- a/ir/be/bechordal_t.h +++ b/ir/be/bechordal_t.h @@ -108,9 +108,10 @@ enum { BE_CH_DUMP_SSADESTR = (1 << 5), BE_CH_DUMP_TREE_INTV = (1 << 6), BE_CH_DUMP_CONSTR = (1 << 7), - BE_CH_DUMP_LOWER = (1 << 8), - BE_CH_DUMP_APPEL = (1 << 9), - BE_CH_DUMP_ALL = 2 * BE_CH_DUMP_LOWER - 1, + BE_CH_DUMP_SPILLSLOTS = (1 << 8), + BE_CH_DUMP_LOWER = (1 << 9), + BE_CH_DUMP_APPEL = (1 << 10), + BE_CH_DUMP_ALL = 2 * BE_CH_DUMP_APPEL - 1, /* ifg flavor */ BE_CH_IFG_STD = 1, diff --git a/ir/be/benode.c b/ir/be/benode.c index 7c89ba941..0be7cff49 100644 --- a/ir/be/benode.c +++ b/ir/be/benode.c @@ -1365,6 +1365,25 @@ static int dump_node(ir_node *irn, FILE *f, dump_reason_t reason) if (a->ent) fprintf(f, "\ncalling: %s\n", get_entity_name(a->ent)); } + break; + case beo_MemPerm: + { + int i; + be_memperm_attr_t *a = (be_memperm_attr_t*) at; + for(i = 0; i < get_irn_arity(irn); ++i) { + entity *in, *out; + in = be_get_MemPerm_in_entity(irn, i); + out = be_get_MemPerm_out_entity(irn, i); + if(in) { + fprintf(f, "\nin[%d]: %s\n", i, get_entity_name(in)); + } + if(out) { + fprintf(f, "\nout[%d]: %s\n", i, get_entity_name(out)); + } + } + } + break; + default: break; }