mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
246af050e7
commit
30a7199a19
|
|
@ -1,3 +1,7 @@
|
||||||
|
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>
|
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.
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
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)
|
||||||
|
|
||||||
/* 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 ();
|
init_dep (new_dep, insn, twin, REG_DEP_OUTPUT);
|
||||||
|
sd_add_dep (new_dep, false);
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
calc_priorities (priorities_roots);
|
calc_priorities (priorities_roots);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue