From: Trevor Saunders <tbsaunde+...@tbsaunde.org>

gcc/ChangeLog:

2016-04-20  Trevor Saunders  <tbsaunde+...@tbsaunde.org>

        * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
---
 gcc/haifa-sched.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 34c5cc5..800a8f7 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -8604,9 +8604,8 @@ static void
 fix_recovery_deps (basic_block rec)
 {
   rtx_insn *note, *insn, *jump;
-  rtx_insn_list *ready_list = 0;
+  auto_vec<rtx_insn *, 10> ready_list;
   bitmap_head in_ready;
-  rtx_insn_list *link;
 
   bitmap_initialize (&in_ready, 0);
 
@@ -8632,7 +8631,7 @@ fix_recovery_deps (basic_block rec)
              sd_delete_dep (sd_it);
 
              if (bitmap_set_bit (&in_ready, INSN_LUID (consumer)))
-               ready_list = alloc_INSN_LIST (consumer, ready_list);
+               ready_list.safe_push (consumer);
            }
          else
            {
@@ -8649,9 +8648,9 @@ fix_recovery_deps (basic_block rec)
   bitmap_clear (&in_ready);
 
   /* Try to add instructions to the ready or queue list.  */
-  for (link = ready_list; link; link = link->next ())
-    try_ready (link->insn ());
-  free_INSN_LIST_list (&ready_list);
+  unsigned int len = ready_list.length ();
+  for (unsigned int i = len - 1; i < len; i--)
+    try_ready (ready_list[i]);
 
   /* Fixing jump's dependences.  */
   insn = BB_HEAD (rec);
-- 
2.7.4

Reply via email to