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