X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeverify.c;h=c7c6045b874622ce09d014b0993b3dc0f2800afe;hb=a4c23fb5fdcaf600f18b4fa7b7e104fa9b7dc514;hp=c2034421ff0a8b45e2ea03ccba9dab60f610b19d;hpb=3f807bf48426a29da4129ff29c44a4b4690c45f6;p=libfirm diff --git a/ir/be/beverify.c b/ir/be/beverify.c index c2034421f..c7c6045b8 100644 --- a/ir/be/beverify.c +++ b/ir/be/beverify.c @@ -762,7 +762,7 @@ static void check_register_constraints(ir_node *node) ir_node *pred = get_Phi_pred(node, i); const arch_register_t *pred_reg = arch_get_irn_register(arch_env, pred); - if (reg != pred_reg) { + if (reg != pred_reg && !arch_register_type_is(pred_reg, joker)) { ir_fprintf(stderr, "Verify warning: Input %d of %+F in block %+F(%s) uses register %s instead of %s\n", i, node, get_nodes_block(node), get_irg_dump_name(irg), pred_reg->name, reg->name); problem_found = 1; @@ -822,20 +822,18 @@ static void verify_block_register_allocation(ir_node *block, void *data) { nregclasses = arch_env_get_n_reg_class(arch_env); for (i = 0; i < nregclasses; ++i) { ir_node *node; - int i2; + int idx, i2, n_regs; regclass = arch_env_get_reg_class(arch_env, i); - int i; - assert(lv->nodes && "live sets must be computed"); - int n_regs = arch_register_class_n_regs(regclass); - registers = alloca(n_regs * sizeof(registers[0])); + n_regs = arch_register_class_n_regs(regclass); + registers = alloca(n_regs * sizeof(registers[0])); memset(registers, 0, n_regs * sizeof(registers[0])); - be_lv_foreach(lv, block, be_lv_state_end, i) { - ir_node *node = be_lv_get_irn(lv, block, i); + be_lv_foreach(lv, block, be_lv_state_end, idx) { + ir_node *node = be_lv_get_irn(lv, block, idx); value_used(node); } @@ -863,8 +861,8 @@ static void verify_block_register_allocation(ir_node *block, void *data) { } } - be_lv_foreach(lv, block, be_lv_state_in, i) { - ir_node *node = be_lv_get_irn(lv, block, i); + be_lv_foreach(lv, block, be_lv_state_in, idx) { + ir_node *node = be_lv_get_irn(lv, block, idx); value_def(node); }