Commit 01007ae0 by Eric Botcazou Committed by Eric Botcazou

reorg.c (fill_simple_delay_slots): Reindent block of code.

	* reorg.c (fill_simple_delay_slots): Reindent block of code.
	* resource.c (mark_target_live_regs): Reformat conditional block.

From-SVN: r197949
parent da98a6a1
2013-04-14 Eric Botcazou <ebotcazou@adacore.com>
* reorg.c (fill_simple_delay_slots): Reindent block of code.
* resource.c (mark_target_live_regs): Reformat conditional block.
2013-04-13 Steven Bosscher <steven@gcc.gnu.org> 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
* sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
......
...@@ -2144,69 +2144,66 @@ fill_simple_delay_slots (int non_jumps_p) ...@@ -2144,69 +2144,66 @@ fill_simple_delay_slots (int non_jumps_p)
if (CALL_P (insn)) if (CALL_P (insn))
maybe_never = 1; maybe_never = 1;
for (trial = next_nonnote_insn (insn); !stop_search_p (trial, 1); for (trial = next_nonnote_insn (insn); !stop_search_p (trial, 1);
trial = next_trial) trial = next_trial)
{ {
next_trial = next_nonnote_insn (trial); next_trial = next_nonnote_insn (trial);
/* This must be an INSN or CALL_INSN. */ /* This must be an INSN or CALL_INSN. */
pat = PATTERN (trial); pat = PATTERN (trial);
/* Stand-alone USE and CLOBBER are just for flow. */ /* Stand-alone USE and CLOBBER are just for flow. */
if (GET_CODE (pat) == USE || GET_CODE (pat) == CLOBBER) if (GET_CODE (pat) == USE || GET_CODE (pat) == CLOBBER)
continue; continue;
/* If this already has filled delay slots, get the insn needing /* If this already has filled delay slots, get the insn needing
the delay slots. */ the delay slots. */
if (GET_CODE (pat) == SEQUENCE) if (GET_CODE (pat) == SEQUENCE)
trial_delay = XVECEXP (pat, 0, 0); trial_delay = XVECEXP (pat, 0, 0);
else else
trial_delay = trial; trial_delay = trial;
/* Stop our search when seeing a jump. */ /* Stop our search when seeing a jump. */
if (JUMP_P (trial_delay)) if (JUMP_P (trial_delay))
break; break;
/* See if we have a resource problem before we try to /* See if we have a resource problem before we try to split. */
split. */ if (GET_CODE (pat) != SEQUENCE
if (GET_CODE (pat) != SEQUENCE && ! insn_references_resource_p (trial, &set, true)
&& ! insn_references_resource_p (trial, &set, true) && ! insn_sets_resource_p (trial, &set, true)
&& ! insn_sets_resource_p (trial, &set, true) && ! insn_sets_resource_p (trial, &needed, true)
&& ! insn_sets_resource_p (trial, &needed, true)
#ifdef HAVE_cc0 #ifdef HAVE_cc0
&& ! (reg_mentioned_p (cc0_rtx, pat) && ! sets_cc0_p (pat)) && ! (reg_mentioned_p (cc0_rtx, pat) && ! sets_cc0_p (pat))
#endif #endif
&& ! (maybe_never && may_trap_or_fault_p (pat)) && ! (maybe_never && may_trap_or_fault_p (pat))
&& (trial = try_split (pat, trial, 0)) && (trial = try_split (pat, trial, 0))
&& eligible_for_delay (insn, slots_filled, trial, flags) && eligible_for_delay (insn, slots_filled, trial, flags)
&& ! can_throw_internal(trial)) && ! can_throw_internal(trial))
{ {
next_trial = next_nonnote_insn (trial); next_trial = next_nonnote_insn (trial);
delay_list = add_to_delay_list (trial, delay_list); delay_list = add_to_delay_list (trial, delay_list);
#ifdef HAVE_cc0 #ifdef HAVE_cc0
if (reg_mentioned_p (cc0_rtx, pat)) if (reg_mentioned_p (cc0_rtx, pat))
link_cc0_insns (trial); link_cc0_insns (trial);
#endif #endif
delete_related_insns (trial);
if (slots_to_fill == ++slots_filled)
break;
continue;
}
delete_related_insns (trial); mark_set_resources (trial, &set, 0, MARK_SRC_DEST_CALL);
if (slots_to_fill == ++slots_filled) mark_referenced_resources (trial, &needed, true);
break;
continue;
}
mark_set_resources (trial, &set, 0, MARK_SRC_DEST_CALL);
mark_referenced_resources (trial, &needed, true);
/* Ensure we don't put insns between the setting of cc and the /* Ensure we don't put insns between the setting of cc and the
comparison by moving a setting of cc into an earlier delay comparison by moving a setting of cc into an earlier delay
slot since these insns could clobber the condition code. */ slot since these insns could clobber the condition code. */
set.cc = 1; set.cc = 1;
/* If this is a call, we might not get here. */ /* If this is a call, we might not get here. */
if (CALL_P (trial_delay)) if (CALL_P (trial_delay))
maybe_never = 1; maybe_never = 1;
} }
/* If there are slots left to fill and our search was stopped by an /* If there are slots left to fill and our search was stopped by an
unconditional branch, try the insn at the branch target. We can unconditional branch, try the insn at the branch target. We can
......
...@@ -990,9 +990,10 @@ mark_target_live_regs (rtx insns, rtx target, struct resources *res) ...@@ -990,9 +990,10 @@ mark_target_live_regs (rtx insns, rtx target, struct resources *res)
/* If this insn is a USE made by update_block, we care about the /* If this insn is a USE made by update_block, we care about the
underlying insn. */ underlying insn. */
if (code == INSN && GET_CODE (PATTERN (insn)) == USE if (code == INSN
&& GET_CODE (PATTERN (insn)) == USE
&& INSN_P (XEXP (PATTERN (insn), 0))) && INSN_P (XEXP (PATTERN (insn), 0)))
real_insn = XEXP (PATTERN (insn), 0); real_insn = XEXP (PATTERN (insn), 0);
if (CALL_P (real_insn)) if (CALL_P (real_insn))
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment