- list_for_each_entry(border_t, b, head, list) {
- if(b->is_def) {
- const arch_register_t *reg = arch_get_irn_register(env->arch_env, 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 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);
-
- color_t color;
- reg_to_color(env, bl, b->irn, &color);
-
- x += dims->box.x;
- ystart += dims->box.y;
- ystop += dims->box.y;
-
- env->plotter->vtab->set_color(env->plotter, &color);
- env->plotter->vtab->line(env->plotter, x, ystart, x, ystop);
-
- env->plotter->vtab->line(env->plotter, x - 2, ystart, x + 2, ystart);
- env->plotter->vtab->line(env->plotter, x - 2, ystop, x + 2, ystop);
- }
- }
-
- if(dom) {
- struct block_dims *dom_dims = pmap_get(env->block_dims, dom);
-
- for(irn = pset_first(live_in); irn; irn = pset_next(live_in)) {
- if(arch_irn_has_reg_class(env->arch_env, irn, -1, env->cls)) {
- const arch_register_t *reg = arch_get_irn_register(env->arch_env, irn);
- int col = arch_register_get_index(reg);
- int x = (col + 1) * opts->h_inter_gap;
-
- color_t color;
- reg_to_color(env, bl, irn, &color);
-
- env->plotter->vtab->set_color(env->plotter, &color);
- env->plotter->vtab->line(env->plotter,
- dims->box.x + x,
- dims->box.y + dims->box.h,
- dom_dims->box.x + x,
- dom_dims->box.y);
- }
- }
- }
-
- del_pset(live_in);
+ list_for_each_entry(border_t, b, head, list) {
+ if (b->is_def) {
+ const arch_register_t *reg = arch_get_irn_register(env->arch_env, 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 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);
+
+ color_t color;
+ reg_to_color(env, bl, b->irn, &color);
+
+ x += dims->box.x;
+ ystart += dims->box.y;
+ ystop += dims->box.y;
+
+ env->plotter->vtab->set_color(env->plotter, &color);
+ env->plotter->vtab->line(env->plotter, x, ystart, x, ystop);
+
+ env->plotter->vtab->line(env->plotter, x - 2, ystart, x + 2, ystart);
+ env->plotter->vtab->line(env->plotter, x - 2, ystop, x + 2, ystop);
+ }
+ }
+
+ if (dom) {
+ struct block_dims *dom_dims = pmap_get(env->block_dims, dom);
+
+ be_lv_foreach(lv, bl, be_lv_state_in, idx) {
+ ir_node *irn = be_lv_get_irn(lv, bl, idx);
+ if (arch_irn_consider_in_reg_alloc(env->arch_env, env->cls, irn)) {
+ const arch_register_t *reg = arch_get_irn_register(env->arch_env, irn);
+ int col = arch_register_get_index(reg);
+ int x = (col + 1) * opts->h_inter_gap;
+ color_t color;
+
+ reg_to_color(env, bl, irn, &color);
+
+ env->plotter->vtab->set_color(env->plotter, &color);
+ env->plotter->vtab->line(env->plotter,
+ dims->box.x + x,
+ dims->box.y + dims->box.h,
+ dom_dims->box.x + x,
+ dom_dims->box.y);
+ }
+ }
+ }