Commit 5e851c02 by Jakub Jelinek Committed by Jakub Jelinek

reorg.c (try_merge_delay_insns): Declare i and j inside the for loops rather…

reorg.c (try_merge_delay_insns): Declare i and j inside the for loops rather than one for the whole function.

	* reorg.c (try_merge_delay_insns): Declare i and j inside the
	for loops rather than one for the whole function.

From-SVN: r235451
parent ca1206be
2016-04-26 Jakub Jelinek <jakub@redhat.com>
* reorg.c (try_merge_delay_insns): Declare i and j inside the
for loops rather than one for the whole function.
2016-04-26 Marc Glisse <marc.glisse@inria.fr> 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
* match.pd (X + CST CMP X): New transformation. * match.pd (X + CST CMP X): New transformation.
......
...@@ -1260,7 +1260,6 @@ try_merge_delay_insns (rtx_insn *insn, rtx_insn *thread) ...@@ -1260,7 +1260,6 @@ try_merge_delay_insns (rtx_insn *insn, rtx_insn *thread)
rtx next_to_match = XVECEXP (PATTERN (insn), 0, slot_number); rtx next_to_match = XVECEXP (PATTERN (insn), 0, slot_number);
struct resources set, needed, modified; struct resources set, needed, modified;
auto_vec<std::pair<rtx_insn *, bool>, 10> merged_insns; auto_vec<std::pair<rtx_insn *, bool>, 10> merged_insns;
int i, j;
int flags; int flags;
flags = get_jump_flags (delay_insn, JUMP_LABEL (delay_insn)); flags = get_jump_flags (delay_insn, JUMP_LABEL (delay_insn));
...@@ -1275,7 +1274,7 @@ try_merge_delay_insns (rtx_insn *insn, rtx_insn *thread) ...@@ -1275,7 +1274,7 @@ try_merge_delay_insns (rtx_insn *insn, rtx_insn *thread)
will essentially disable this optimization. This method is somewhat of will essentially disable this optimization. This method is somewhat of
a kludge, but I don't see a better way.) */ a kludge, but I don't see a better way.) */
if (! annul_p) if (! annul_p)
for (i = 1 ; i < num_slots; i++) for (int i = 1; i < num_slots; i++)
if (XVECEXP (PATTERN (insn), 0, i)) if (XVECEXP (PATTERN (insn), 0, i))
mark_referenced_resources (XVECEXP (PATTERN (insn), 0, i), &needed, mark_referenced_resources (XVECEXP (PATTERN (insn), 0, i), &needed,
true); true);
...@@ -1346,19 +1345,19 @@ try_merge_delay_insns (rtx_insn *insn, rtx_insn *thread) ...@@ -1346,19 +1345,19 @@ try_merge_delay_insns (rtx_insn *insn, rtx_insn *thread)
mark_set_resources (filled_insn, &set, 0, MARK_SRC_DEST_CALL); mark_set_resources (filled_insn, &set, 0, MARK_SRC_DEST_CALL);
mark_referenced_resources (filled_insn, &needed, true); mark_referenced_resources (filled_insn, &needed, true);
for (i = 1; i < pat->len (); i++) for (int i = 1; i < pat->len (); i++)
{ {
rtx_insn *dtrial = pat->insn (i); rtx_insn *dtrial = pat->insn (i);
CLEAR_RESOURCE (&modified); CLEAR_RESOURCE (&modified);
/* Account for resources set by the insn following NEXT_TO_MATCH /* Account for resources set by the insn following NEXT_TO_MATCH
inside INSN's delay list. */ inside INSN's delay list. */
for (j = 1; slot_number + j < num_slots; j++) for (int j = 1; slot_number + j < num_slots; j++)
mark_set_resources (XVECEXP (PATTERN (insn), 0, slot_number + j), mark_set_resources (XVECEXP (PATTERN (insn), 0, slot_number + j),
&modified, 0, MARK_SRC_DEST_CALL); &modified, 0, MARK_SRC_DEST_CALL);
/* Account for resources set by the insn before DTRIAL and inside /* Account for resources set by the insn before DTRIAL and inside
TRIAL's delay list. */ TRIAL's delay list. */
for (j = 1; j < i; j++) for (int j = 1; j < i; j++)
mark_set_resources (XVECEXP (pat, 0, j), mark_set_resources (XVECEXP (pat, 0, j),
&modified, 0, MARK_SRC_DEST_CALL); &modified, 0, MARK_SRC_DEST_CALL);
if (! insn_references_resource_p (dtrial, &set, true) if (! insn_references_resource_p (dtrial, &set, true)
...@@ -1411,24 +1410,22 @@ try_merge_delay_insns (rtx_insn *insn, rtx_insn *thread) ...@@ -1411,24 +1410,22 @@ try_merge_delay_insns (rtx_insn *insn, rtx_insn *thread)
{ {
unsigned int len = merged_insns.length (); unsigned int len = merged_insns.length ();
for (unsigned int i = len - 1; i < len; i--) for (unsigned int i = len - 1; i < len; i--)
{ if (merged_insns[i].second)
if (merged_insns[i].second) {
{ update_block (merged_insns[i].first, thread);
update_block (merged_insns[i].first, thread); rtx_insn *new_rtx = delete_from_delay_slot (merged_insns[i].first);
rtx_insn *new_rtx = delete_from_delay_slot (merged_insns[i].first); if (thread->deleted ())
if (thread->deleted ()) thread = new_rtx;
thread = new_rtx; }
} else
else {
{ update_block (merged_insns[i].first, thread);
update_block (merged_insns[i].first, thread); delete_related_insns (merged_insns[i].first);
delete_related_insns (merged_insns[i].first); }
}
}
INSN_ANNULLED_BRANCH_P (delay_insn) = 0; INSN_ANNULLED_BRANCH_P (delay_insn) = 0;
for (i = 0; i < XVECLEN (PATTERN (insn), 0); i++) for (int i = 0; i < XVECLEN (PATTERN (insn), 0); i++)
INSN_FROM_TARGET_P (XVECEXP (PATTERN (insn), 0, i)) = 0; INSN_FROM_TARGET_P (XVECEXP (PATTERN (insn), 0, i)) = 0;
} }
} }
......
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