From 30a7199a198072cc5026ba878c2c9d15842e07dc Mon Sep 17 00:00:00 2001 From: Trevor Saunders Date: Thu, 28 Jul 2016 11:01:39 +0000 Subject: [PATCH] haifa-sched.c: make twins a auto_vec gcc/ChangeLog: 2016-07-28 Trevor Saunders * haifa-sched.c (add_to_speculative_block): Make twins a vector. From-SVN: r238813 --- gcc/ChangeLog | 4 ++++ gcc/haifa-sched.c | 25 ++++++++----------------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8c9d175e77..41549962c14 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2016-07-28 Trevor Saunders + + * haifa-sched.c (add_to_speculative_block): Make twins a vector. + 2016-07-28 Trevor Saunders * store-motion.c (struct st_expr): Make pattern_regs a vector. diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 95035762915..93b7089f710 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -7991,7 +7991,7 @@ add_to_speculative_block (rtx_insn *insn) ds_t ts; sd_iterator_def sd_it; dep_t dep; - rtx_insn_list *twins = NULL; + auto_vec twins; ts = TODO_SPEC (insn); gcc_assert (!(ts & ~BE_IN_SPEC)); @@ -8060,7 +8060,7 @@ add_to_speculative_block (rtx_insn *insn) fprintf (spec_info->dump, ";;\t\tGenerated twin insn : %d/rec%d\n", INSN_UID (twin), rec->index); - twins = alloc_INSN_LIST (twin, twins); + twins.safe_push (twin); /* Add dependences between TWIN and all appropriate instructions from REC. */ @@ -8099,23 +8099,14 @@ add_to_speculative_block (rtx_insn *insn) /* We couldn't have added the dependencies between INSN and TWINS earlier because that would make TWINS appear in the INSN_BACK_DEPS (INSN). */ - while (twins) + unsigned int i; + rtx_insn *twin; + FOR_EACH_VEC_ELT_REVERSE (twins, i, twin) { - rtx_insn *twin; - rtx_insn_list *next_node; - - twin = twins->insn (); - - { - dep_def _new_dep, *new_dep = &_new_dep; + dep_def _new_dep, *new_dep = &_new_dep; - init_dep (new_dep, insn, twin, REG_DEP_OUTPUT); - sd_add_dep (new_dep, false); - } - - next_node = twins->next (); - free_INSN_LIST_node (twins); - twins = next_node; + init_dep (new_dep, insn, twin, REG_DEP_OUTPUT); + sd_add_dep (new_dep, false); } calc_priorities (priorities_roots); -- 2.30.2