summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2013-07-23 15:56:37 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2013-07-23 15:56:37 +0000
commitb766ccbc9571f59c1816bb194e12d1a1c2c54ed4 (patch)
tree7eb216da80109b2f703503c7cf426f926601aa74
parentc2d280c9af284c2941f2dfe1f7c7964953e97053 (diff)
downloadgcc-b766ccbc9571f59c1816bb194e12d1a1c2c54ed4.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201174 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog22
-rw-r--r--gcc/cfgloopmanip.c6
-rw-r--r--gcc/config/i386/i386.c5
-rw-r--r--gcc/gensupport.c4
-rw-r--r--gcc/reload.c10
-rw-r--r--gcc/rtlanal.c5
6 files changed, 43 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b2851dd358a..95a86e47b1f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c
index bc877559052..f35e5aedc79 100644
--- a/gcc/cfgloopmanip.c
+++ b/gcc/cfgloopmanip.c
@@ -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];
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 140c5691359..0c546af00b2 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -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)
{
diff --git a/gcc/gensupport.c b/gcc/gensupport.c
index 19b92408dc4..c7a27c42617 100644
--- a/gcc/gensupport.c
+++ b/gcc/gensupport.c
@@ -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;
diff --git a/gcc/reload.c b/gcc/reload.c
index 8733ff33467..b15f3b20eb7 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -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;
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 9567694bc15..95a314f0f3f 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -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--)