From: collison Date: Tue, 10 Feb 2015 07:24:17 +0000 (+0000) Subject: 2015-02-10 Michael Collison X-Git-Tag: upstream/4.9.2.0~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cba7e7928fd7e19d29145c18a09c68a10e63efd7;p=platform%2Fupstream%2Fgcc49.git 2015-02-10 Michael Collison Backport from trunk r217331. 2014-11-11 Bin Cheng * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@220567 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog.linaro b/gcc/ChangeLog.linaro index 2f4e739..5e2459a 100644 --- a/gcc/ChangeLog.linaro +++ b/gcc/ChangeLog.linaro @@ -1,3 +1,12 @@ +2015-02-10 Michael Collison + + Backport from trunk r217331. + 2014-11-11 Bin Cheng + + * 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. + 2015-02-09 Michael Collison Backport from trunk r216779. diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index b7e14e4..cd5d2ca 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -2489,7 +2489,7 @@ sched_analyze_1 (struct deps_desc *deps, rtx x, rtx 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 @@ -2700,7 +2700,7 @@ sched_analyze_2 (struct deps_desc *deps, rtx x, rtx 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); @@ -3202,8 +3202,8 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx 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); @@ -3636,7 +3636,7 @@ deps_analyze_insn (struct deps_desc *deps, rtx 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