2015-02-10 Michael Collison <michael.collison@linaro.org>
authorcollison <collison@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Feb 2015 07:24:17 +0000 (07:24 +0000)
committerDongkyun, Son <dongkyun.s@samsung.com>
Sat, 6 Jun 2015 14:27:11 +0000 (23:27 +0900)
Backport from trunk r217331.
2014-11-11  Bin Cheng  <bin.cheng@arm.com>

* 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

gcc/ChangeLog.linaro
gcc/sched-deps.c

index 2f4e739..5e2459a 100644 (file)
@@ -1,3 +1,12 @@
+2015-02-10  Michael Collison  <michael.collison@linaro.org>
+
+       Backport from trunk r217331.
+       2014-11-11  Bin Cheng  <bin.cheng@arm.com>
+
+       * 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  <michael.collison@linaro.org>
 
        Backport from trunk r216779.
index b7e14e4..cd5d2ca 100644 (file)
@@ -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, &reg_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