X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeverify.c;h=d8b2db4072e5a75fa3d8a8aec80cf5c1fe0afa4e;hb=c57decb6b15b5490d4c3e9e546d8024556e2263f;hp=fc8e3c4a64166fdc5b68fe5117ea03fdf6d20b5c;hpb=7f697a04ed97496a78897468d857acbaffe90ff3;p=libfirm diff --git a/ir/be/beverify.c b/ir/be/beverify.c index fc8e3c4a6..d8b2db407 100644 --- a/ir/be/beverify.c +++ b/ir/be/beverify.c @@ -179,6 +179,11 @@ static void verify_schedule_walker(ir_node *block, void *data) } last_timestep = timestep; + if (arch_get_irn_flags(node) & arch_irn_flags_not_scheduled) { + ir_fprintf(stderr, "Verify warning: flags_not_scheduled node %+F scheduled anyway\n", node); + env->problem_found = true; + } + /* Check that phis come before any other node */ if (is_Phi(node)) { if (non_phi_found != NULL) { @@ -201,8 +206,8 @@ static void verify_schedule_walker(ir_node *block, void *data) cfchange_found = node; } } else if (cfchange_found != NULL) { - /* proj and keepany aren't real instructions... */ - if (!is_Proj(node) && !be_is_Keep(node)) { + /* keepany isn't a real instruction. */ + if (!be_is_Keep(node)) { ir_fprintf(stderr, "Verify Warning: Node %+F scheduled after control flow changing node in block %+F (%s)\n", node, block, get_irg_name(env->irg)); env->problem_found = true; @@ -755,17 +760,10 @@ static void verify_block_register_allocation(ir_node *block, void *data) } sched_foreach_reverse(block, node) { - - if (get_irn_mode(node) == mode_T) { - foreach_out_edge(node, edge) { - ir_node *def = get_edge_src_irn(edge); - value_def(def); - check_output_constraints(def); - } - } else { - value_def(node); - check_output_constraints(node); - } + be_foreach_value(node, value, + value_def(value); + check_output_constraints(value); + ); check_input_constraints(node);