diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-07-23 15:56:37 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-07-23 15:56:37 +0000 |
commit | b766ccbc9571f59c1816bb194e12d1a1c2c54ed4 (patch) | |
tree | 7eb216da80109b2f703503c7cf426f926601aa74 /gcc | |
parent | c2d280c9af284c2941f2dfe1f7c7964953e97053 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 22 | ||||
-rw-r--r-- | gcc/cfgloopmanip.c | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 5 | ||||
-rw-r--r-- | gcc/gensupport.c | 4 | ||||
-rw-r--r-- | gcc/reload.c | 10 | ||||
-rw-r--r-- | gcc/rtlanal.c | 5 |
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--) |