renamed SubSP to SubSPandCopy, add some constants
[libfirm] / ir / be / beverify.c
index f1f0f23..ec2af73 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -262,6 +262,9 @@ static void verify_schedule_walker(ir_node *block, void *data) {
                        int      arity   = get_irn_arity(node);
                        int      problem = 1;
                        ir_node *prev    = sched_prev(node);
+                       while(be_is_Keep(prev))
+                               prev = sched_prev(prev);
+
                        for(i = 0; i < arity; ++i) {
                                ir_node *in = get_irn_n(node, i);
                                in = skip_Proj(in);
@@ -749,8 +752,8 @@ static void check_register_constraints(ir_node *node,
 
                reg = arch_get_irn_register(arch_env, pred);
                if (reg == NULL) {
-                       ir_fprintf(stderr, "Verify warning: Node %+F in block %+F(%s) should have a register assigned\n",
-                                  pred, get_nodes_block(pred), get_irg_dump_name(env->irg));
+                       ir_fprintf(stderr, "Verify warning: Node %+F in block %+F(%s) should have a register assigned (%+F input constraint)\n",
+                                  pred, get_nodes_block(pred), get_irg_dump_name(env->irg), node);
                        env->problem_found = 1;
                        continue;
                }
@@ -806,12 +809,11 @@ static void check_register_allocation(be_verify_register_allocation_env_t *env,
 static void verify_block_register_allocation(ir_node *block, void *data) {
        be_verify_register_allocation_env_t *env = data;
        const arch_env_t *arch_env = env->arch_env;
-       const arch_isa_t *isa = arch_env->isa;
        int i, nregclasses;
 
-       nregclasses = arch_isa_get_n_reg_class(isa);
+       nregclasses = arch_env_get_n_reg_class(arch_env);
        for (i = 0; i < nregclasses; ++i) {
-               const arch_register_class_t *regclass = arch_isa_get_reg_class(isa, i);
+               const arch_register_class_t *regclass = arch_env_get_reg_class(arch_env, i);
                ir_node *node;
                ir_nodeset_t live_nodes;