From 538472cfdfc66776fabe30d2f2e5861a8889bcbb Mon Sep 17 00:00:00 2001 From: Adam Szalkowski Date: Thu, 10 Aug 2006 11:59:58 +0000 Subject: [PATCH] another bug fixed --- ir/be/bespillremat.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ir/be/bespillremat.c b/ir/be/bespillremat.c index 2d536f6cd..9ecacf541 100644 --- a/ir/be/bespillremat.c +++ b/ir/be/bespillremat.c @@ -790,7 +790,7 @@ can_remat_before(const spill_ilp_t * si, const remat_t * remat, const ir_node * if(opt_no_enlarge_liveness) { if(has_reg_class(si, arg) && live) { - res &= pset_find_ptr(live, arg)?1:0; + res &= pset_find_ptr((pset*)live, arg)?1:0; } else { res &= value_is_defined_before(si, pos, arg); } @@ -2647,6 +2647,7 @@ values_interfere_in_block(const spill_ilp_t * si, const ir_node * bb, const ir_n if(get_nodes_block(user) == bb && !is_Phi(user) && b != user + && !pset_find_ptr(si->inverse_ops, user) && value_dominates(b, user)) return 1; } @@ -2670,7 +2671,7 @@ luke_interferencewalker(ir_node * bb, void * data) /* a is only interesting if it is in my register class and if it is inside a phi class */ if (has_reg_class(si, a) && get_phi_class(a)) { - if(a_op->is_remat) + if(a_op->is_remat || pset_find_ptr(si->inverse_ops, a)) continue; for(l2=_be_lv_next_irn(si->lv, bb, 0xff, l1+1); l2>=0; l2=_be_lv_next_irn(si->lv, bb, 0xff, l2+1)) { @@ -2680,7 +2681,7 @@ luke_interferencewalker(ir_node * bb, void * data) /* a and b are only interesting if they are in the same phi class */ if(has_reg_class(si, b) && get_phi_class(a) == get_phi_class(b)) { - if(b_op->is_remat) + if(b_op->is_remat || pset_find_ptr(si->inverse_ops, b)) continue; if(values_interfere_in_block(si, bb, a, b)) { -- 2.20.1