diff options
author | Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | 2016-07-28 11:01:39 +0000 |
---|---|---|
committer | Trevor Saunders <tbsaunde@gcc.gnu.org> | 2016-07-28 11:01:39 +0000 |
commit | 30a7199a198072cc5026ba878c2c9d15842e07dc (patch) | |
tree | 1e665b4611641a6136e583aae8aacf3b733af2da /gcc/haifa-sched.c | |
parent | 246af050e7d8a91b14dc00f277a8c549260e2168 (diff) | |
download | gcc-30a7199a198072cc5026ba878c2c9d15842e07dc.tar.gz |
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
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r-- | gcc/haifa-sched.c | 25 |
1 files changed, 8 insertions, 17 deletions
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<rtx_insn *, 10> 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); |