diff --git a/gcc/ext-dce.cc b/gcc/ext-dce.cc index 52032b50951..4523654538c 100644 --- a/gcc/ext-dce.cc +++ b/gcc/ext-dce.cc @@ -122,10 +122,9 @@ safe_for_live_propagation (rtx_code code) optimziation phase during use handling will be. */ static void -ext_dce_process_sets (rtx insn, bitmap livenow, bitmap live_tmp) +ext_dce_process_sets (rtx insn, rtx pat, bitmap livenow, bitmap live_tmp) { subrtx_iterator::array_type array; - rtx pat = PATTERN (insn); FOR_EACH_SUBRTX (iter, array, pat, NONCONST) { const_rtx x = *iter; @@ -377,7 +376,7 @@ binop_implies_op2_fully_live (rtx_code code) eliminated in CHANGED_PSEUDOS. */ static void -ext_dce_process_uses (rtx insn, bitmap livenow, bitmap live_tmp, +ext_dce_process_uses (rtx insn, rtx pat, bitmap livenow, bitmap live_tmp, bool modify, bitmap changed_pseudos) { /* A nonlocal goto implicitly uses the frame pointer. */ @@ -389,7 +388,6 @@ ext_dce_process_uses (rtx insn, bitmap livenow, bitmap live_tmp, } subrtx_var_iterator::array_type array_var; - rtx pat = PATTERN (insn); FOR_EACH_SUBRTX_VAR (iter, array_var, pat, NONCONST) { /* An EXPR_LIST (from call fusage) ends in NULL_RTX. */ @@ -640,15 +638,16 @@ ext_dce_process_bb (basic_block bb, bitmap livenow, bitmap live_tmp = BITMAP_ALLOC (NULL); /* First process any sets/clobbers in INSN. */ - ext_dce_process_sets (insn, livenow, live_tmp); + ext_dce_process_sets (insn, PATTERN (insn), livenow, live_tmp); /* CALL_INSNs need processing their fusage data. */ if (GET_CODE (insn) == CALL_INSN) - ext_dce_process_sets (CALL_INSN_FUNCTION_USAGE (insn), + ext_dce_process_sets (insn, CALL_INSN_FUNCTION_USAGE (insn), livenow, live_tmp); /* And now uses, optimizing away SIGN/ZERO extensions as we go. */ - ext_dce_process_uses (insn, livenow, live_tmp, modify, changed_pseudos); + ext_dce_process_uses (insn, PATTERN (insn), livenow, live_tmp, modify, + changed_pseudos); /* And process fusage data for the use as well. */ if (GET_CODE (insn) == CALL_INSN) @@ -663,7 +662,7 @@ ext_dce_process_bb (basic_block bb, bitmap livenow, if (global_regs[i]) bitmap_set_range (livenow, i * 4, 4); - ext_dce_process_uses (CALL_INSN_FUNCTION_USAGE (insn), + ext_dce_process_uses (insn, CALL_INSN_FUNCTION_USAGE (insn), livenow, live_tmp, modify, changed_pseudos); }