/*
- * 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.
*
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);
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;
}
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;