-static void check_pressure_walker(ir_node *bl, void *data)
-{
- be_chordal_env_t *env = data;
- int n_regs = arch_register_class_n_regs(env->cls);
-
- pset *live = pset_new_ptr_default();
- int step = 0;
- ir_node *irn;
- irn_live_t *li;
- DEBUG_ONLY(firm_dbg_module_t *dbg = env->dbg;)
-
- live_foreach(bl, li) {
- if(live_is_end(li) && chordal_has_class(env, li->irn)) {
- ir_node *irn = (ir_node *) li->irn;
- pset_insert_ptr(live, irn);
- }
- }
-
- DBG((dbg, LEVEL_1, "end set for %+F\n", bl));
- for(irn = pset_first(live); irn; irn = pset_next(live))
- DBG((dbg, LEVEL_1, "\t%+F\n", irn));
-
- sched_foreach_reverse(bl, irn) {
- int i, n;
- int pressure = pset_count(live);
-
- DBG((dbg, LEVEL_1, "%+10F@%+10F: pressure %d\n", bl, irn, pressure));
-
- if(pressure > n_regs) {
- ir_node *x;
- ir_printf("%+10F@%+10F: pressure to high: %d\n", bl, irn, pressure);
- for(x = pset_first(live); x; x = pset_next(live))
- ir_printf("\t%+10F\n", x);
- }
-
- if(chordal_has_class(env, irn))
- pset_remove_ptr(live, irn);
-
- for(i = 0, n = get_irn_arity(irn); i < n; i++) {
- ir_node *op = get_irn_n(irn, i);
- if(chordal_has_class(env, op) && !is_Phi(irn))
- pset_insert_ptr(live, op);
- }
- step++;
- }
-}
-
-void be_check_pressure(const be_chordal_env_t *env)
-{
- irg_block_walk_graph(env->irg, check_pressure_walker, NULL, (void *) env);
-}
-