From: tbsaunde Date: Thu, 28 Jul 2016 11:01:39 +0000 (+0000) Subject: haifa-sched.c: make twins a auto_vec X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a75e557ad5c930f1437e9637c7b0a33b2a6837ee;p=thirdparty%2Fgcc.git 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@238813 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8c9d175e779..41549962c141 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 95035762915a..93b7089f710e 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);