Commit 30a7199a by Trevor Saunders Committed by Trevor Saunders

haifa-sched.c: make twins a auto_vec<rtx_insn *>

gcc/ChangeLog:

2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* haifa-sched.c (add_to_speculative_block): Make twins a vector.

From-SVN: r238813
parent 246af050
2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* haifa-sched.c (add_to_speculative_block): Make twins a vector.
2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* store-motion.c (struct st_expr): Make pattern_regs a vector. * store-motion.c (struct st_expr): Make pattern_regs a vector.
(extract_mentioned_regs): Append to a vector instead of (extract_mentioned_regs): Append to a vector instead of
returning a rtx_expr_list. returning a rtx_expr_list.
......
...@@ -7991,7 +7991,7 @@ add_to_speculative_block (rtx_insn *insn) ...@@ -7991,7 +7991,7 @@ add_to_speculative_block (rtx_insn *insn)
ds_t ts; ds_t ts;
sd_iterator_def sd_it; sd_iterator_def sd_it;
dep_t dep; dep_t dep;
rtx_insn_list *twins = NULL; auto_vec<rtx_insn *, 10> twins;
ts = TODO_SPEC (insn); ts = TODO_SPEC (insn);
gcc_assert (!(ts & ~BE_IN_SPEC)); gcc_assert (!(ts & ~BE_IN_SPEC));
...@@ -8060,7 +8060,7 @@ add_to_speculative_block (rtx_insn *insn) ...@@ -8060,7 +8060,7 @@ add_to_speculative_block (rtx_insn *insn)
fprintf (spec_info->dump, ";;\t\tGenerated twin insn : %d/rec%d\n", fprintf (spec_info->dump, ";;\t\tGenerated twin insn : %d/rec%d\n",
INSN_UID (twin), rec->index); INSN_UID (twin), rec->index);
twins = alloc_INSN_LIST (twin, twins); twins.safe_push (twin);
/* Add dependences between TWIN and all appropriate /* Add dependences between TWIN and all appropriate
instructions from REC. */ instructions from REC. */
...@@ -8099,23 +8099,14 @@ add_to_speculative_block (rtx_insn *insn) ...@@ -8099,23 +8099,14 @@ add_to_speculative_block (rtx_insn *insn)
/* We couldn't have added the dependencies between INSN and TWINS earlier /* We couldn't have added the dependencies between INSN and TWINS earlier
because that would make TWINS appear in the INSN_BACK_DEPS (INSN). */ 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; dep_def _new_dep, *new_dep = &_new_dep;
rtx_insn_list *next_node;
twin = twins->insn ();
{
dep_def _new_dep, *new_dep = &_new_dep;
init_dep (new_dep, insn, twin, REG_DEP_OUTPUT); init_dep (new_dep, insn, twin, REG_DEP_OUTPUT);
sd_add_dep (new_dep, false); sd_add_dep (new_dep, false);
}
next_node = twins->next ();
free_INSN_LIST_node (twins);
twins = next_node;
} }
calc_priorities (priorities_roots); calc_priorities (priorities_roots);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment