diff options
author | Bin Cheng <bin.cheng@arm.com> | 2014-11-11 02:10:37 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2014-11-11 02:10:37 +0000 |
commit | 43722f9fa69d4cc9a369b468552d5612674a576f (patch) | |
tree | 552953ca24c30ef709ba8466f219468f13c661f7 /gcc/sched-deps.c | |
parent | f93f644e8588e66a75e8e76c484cbdf045bd28cb (diff) | |
download | gcc-43722f9fa69d4cc9a369b468552d5612674a576f.zip gcc-43722f9fa69d4cc9a369b468552d5612674a576f.tar.gz gcc-43722f9fa69d4cc9a369b468552d5612674a576f.tar.bz2 |
sched-deps.c (sched_analyze_1): Check pending list if it is not less than MAX_PENDING_LIST_LENGTH.
* sched-deps.c (sched_analyze_1): Check pending list if it is not
less than MAX_PENDING_LIST_LENGTH.
(sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
From-SVN: r217331
Diffstat (limited to 'gcc/sched-deps.c')
-rw-r--r-- | gcc/sched-deps.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 6cdb95a..a4ea836 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -2504,7 +2504,7 @@ sched_analyze_1 (struct deps_desc *deps, rtx x, rtx_insn *insn) /* Pending lists can't get larger with a readonly context. */ if (!deps->readonly && ((deps->pending_read_list_length + deps->pending_write_list_length) - > MAX_PENDING_LIST_LENGTH)) + >= MAX_PENDING_LIST_LENGTH)) { /* Flush all pending reads and writes to prevent the pending lists from getting any larger. Insn scheduling runs too slowly when @@ -2722,7 +2722,7 @@ sched_analyze_2 (struct deps_desc *deps, rtx x, rtx_insn *insn) { if ((deps->pending_read_list_length + deps->pending_write_list_length) - > MAX_PENDING_LIST_LENGTH + >= MAX_PENDING_LIST_LENGTH && !DEBUG_INSN_P (insn)) flush_pending_lists (deps, insn, true, true); add_insn_mem_dependence (deps, true, insn, x); @@ -3227,8 +3227,8 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx_insn *insn) EXECUTE_IF_SET_IN_REG_SET (reg_pending_clobbers, 0, i, rsi) { struct deps_reg *reg_last = &deps->reg_last[i]; - if (reg_last->uses_length > MAX_PENDING_LIST_LENGTH - || reg_last->clobbers_length > MAX_PENDING_LIST_LENGTH) + if (reg_last->uses_length >= MAX_PENDING_LIST_LENGTH + || reg_last->clobbers_length >= MAX_PENDING_LIST_LENGTH) { add_dependence_list_and_free (deps, insn, ®_last->sets, 0, REG_DEP_OUTPUT, false); @@ -3661,7 +3661,7 @@ deps_analyze_insn (struct deps_desc *deps, rtx_insn *insn) && sel_insn_is_speculation_check (insn))) { /* Keep the list a reasonable size. */ - if (deps->pending_flush_length++ > MAX_PENDING_LIST_LENGTH) + if (deps->pending_flush_length++ >= MAX_PENDING_LIST_LENGTH) flush_pending_lists (deps, insn, true, true); else deps->pending_jump_insns |