reload.c (find_reloads): Exit loop once we find this operand cannot be reloaded somehow for this alternative.

2013-07-22  Po-Chun Chang  <pchang9@cs.wisc.edu>

	* reload.c (find_reloads): Exit loop once we find this operand
	cannot be reloaded somehow for this alternative.

	* reload.c (find_reloads): Exit loop once we find a hard register.

	* rtlanal.c (computed_jump_p): Exit loop once we find label
	reference is used.

	* i386.c (ix86_pad_returns): Exit loop after setting replace.

	* cfgloopmanip.c (remove_path): Exit loop after setting
	irred_invalidated.

	* gensupport.c (subst_dup): Avoid loop if code is not
	MATCH_DUP nor MATCH_OP_DUP.

From-SVN: r201174
This commit is contained in:
Po-Chun Chang 2013-07-23 15:56:37 +00:00 committed by Jeff Law
parent c8fbf1fafa
commit c7b3b99f31
6 changed files with 43 additions and 9 deletions

View File

@ -1,3 +1,21 @@
2013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
* reload.c (find_reloads): Exit loop once we find this operand
cannot be reloaded somehow for this alternative.
* reload.c (find_reloads): Exit loop once we find a hard register.
* rtlanal.c (computed_jump_p): Exit loop once we find label
reference is used.
* i386.c (ix86_pad_returns): Exit loop after setting replace.
* cfgloopmanip.c (remove_path): Exit loop after setting
irred_invalidated.
* gensupport.c (subst_dup): Avoid loop if code is not
MATCH_DUP nor MATCH_OP_DUP.
2013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
* doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
@ -161,7 +179,7 @@
-march=r5900 -mhard-float -mdouble-float. Use spu_single_format
for -march=r5900 -mhard-float.
2013-07-22 Chang <pchang9@cs.wisc.edu>
2013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
* df-problems.c (can_move_insns_across): Exit loop once we
find a non-fixed, non-global register.
@ -433,7 +451,7 @@
* tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
2013-07-18 Chang <pchang9@cs.wisc.edu>
2013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
* read-rtl.c (validate_const_int): Once an invalid character is
seen, quit the loop.

View File

@ -343,7 +343,11 @@ remove_path (edge e)
FOR_EACH_EDGE (ae, ei, e->src->succs)
if (ae != e && ae->dest != EXIT_BLOCK_PTR && !bitmap_bit_p (seen, ae->dest->index)
&& ae->flags & EDGE_IRREDUCIBLE_LOOP)
irred_invalidated = true;
{
irred_invalidated = true;
break;
}
for (i = 0; i < nrem; i++)
{
bb = rem_bbs[i];

View File

@ -35725,7 +35725,10 @@ ix86_pad_returns (void)
FOR_EACH_EDGE (e, ei, bb->preds)
if (EDGE_FREQUENCY (e) && e->src->index >= 0
&& !(e->flags & EDGE_FALLTHRU))
replace = true;
{
replace = true;
break;
}
}
if (!replace)
{

View File

@ -2178,8 +2178,8 @@ subst_dup (rtx pattern, int n_alt, int n_subst_alt)
if (XVEC (pattern, i) == NULL)
break;
case 'E':
for (j = XVECLEN (pattern, i) - 1; j >= 0; --j)
if (code != MATCH_DUP && code != MATCH_OP_DUP)
if (code != MATCH_DUP && code != MATCH_OP_DUP)
for (j = XVECLEN (pattern, i) - 1; j >= 0; --j)
XVECEXP (pattern, i, j) = subst_dup (XVECEXP (pattern, i, j),
n_alt, n_subst_alt);
break;

View File

@ -3324,7 +3324,10 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known,
for (j = 0; j < i; j++)
if (this_alternative_matches[j]
== this_alternative_matches[i])
badop = 1;
{
badop = 1;
break;
}
break;
case 'p':
@ -4640,7 +4643,10 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known,
for (nri = 1; nri < nr; nri ++)
if (! TEST_HARD_REG_BIT (reg_class_contents[rld[i].rclass], regno + nri))
ok = 0;
{
ok = 0;
break;
}
if (ok)
rld[i].reg_rtx = dest;

View File

@ -2802,7 +2802,10 @@ computed_jump_p (const_rtx insn)
if (GET_CODE (XVECEXP (pat, 0, i)) == USE
&& (GET_CODE (XEXP (XVECEXP (pat, 0, i), 0))
== LABEL_REF))
has_use_labelref = 1;
{
has_use_labelref = 1;
break;
}
if (! has_use_labelref)
for (i = len - 1; i >= 0; i--)