X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbechordal_draw.c;h=e3e956d6a900e7d2c778a8a6f1321aff1dad96b1;hb=3dff5ea08f916551668dc18b449327a8a593bc9f;hp=dba07722ff61c317a8518720a29d9533a4157c78;hpb=5619c9122551713adbefc33977572639408dd8b9;p=libfirm diff --git a/ir/be/bechordal_draw.c b/ir/be/bechordal_draw.c index dba07722f..e3e956d6a 100644 --- a/ir/be/bechordal_draw.c +++ b/ir/be/bechordal_draw.c @@ -35,6 +35,7 @@ #include "iredges_t.h" #include "util.h" +#include "bearch.h" #include "belive_t.h" #include "bechordal_t.h" #include "besched.h" @@ -209,14 +210,13 @@ static void block_dims_walker(ir_node *block, void *data) struct list_head *head = get_block_border_head(env->chordal_env, block); const draw_chordal_opts_t *opts = env->opts; struct block_dims *dims = OALLOCZ(&env->obst, struct block_dims); - border_t *b; dims->min_step = INT_MAX; - list_for_each_entry_reverse(border_t, b, head, list) { + foreach_border_head(head, b) { ir_node *irn = b->irn; const arch_register_t *reg = arch_get_irn_register(irn); - int col = arch_register_get_index(reg); + int col = reg->index; dims->max_step = MAX(dims->max_step, b->step); dims->max_color = MAX(dims->max_color, col); @@ -323,8 +323,6 @@ static void draw_block(ir_node *bl, void *data) const draw_chordal_opts_t *opts = env->opts; struct block_dims *dims = pmap_get(struct block_dims, env->block_dims, bl); char buf[64]; - border_t *b; - int idx; ir_snprintf(buf, sizeof(buf), "%F", bl); @@ -335,12 +333,11 @@ static void draw_block(ir_node *bl, void *data) env->plotter->vtab->text(env->plotter, dims->box.x, dims->box.y, buf); #endif - list_for_each_entry(border_t, b, head, list) { + foreach_border_head(head, b) { if (b->is_def) { const arch_register_t *reg = arch_get_irn_register(b->irn); - int col = arch_register_get_index(reg); int live_out = be_is_live_out(lv, bl, b->irn); - int x = (col + 1) * opts->h_inter_gap; + int x = (reg->index + 1) * opts->h_inter_gap; int ystart = (b->step) * opts->v_inter_gap; int ystop = (b->other_end->step) * opts->v_inter_gap + (live_out ? 0 : opts->v_inter_gap / 2); @@ -362,13 +359,11 @@ static void draw_block(ir_node *bl, void *data) if (dom) { struct block_dims *dom_dims = pmap_get(struct block_dims, env->block_dims, dom); - be_lv_foreach(lv, bl, be_lv_state_in, idx) { - ir_node *irn = be_lv_get_irn(lv, bl, idx); + be_lv_foreach(lv, bl, be_lv_state_in, irn) { if (arch_irn_consider_in_reg_alloc(env->cls, irn)) { const arch_register_t *reg = arch_get_irn_register(irn); - int col = arch_register_get_index(reg); - int x = (col + 1) * opts->h_inter_gap; - color_t color; + int x = (reg->index + 1) * opts->h_inter_gap; + color_t color; reg_to_color(env, bl, irn, &color);