summaryrefslogtreecommitdiff
path: root/gcc/haifa-sched.c
diff options
context:
space:
mode:
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>2016-07-28 11:01:39 +0000
committerTrevor Saunders <tbsaunde@gcc.gnu.org>2016-07-28 11:01:39 +0000
commit30a7199a198072cc5026ba878c2c9d15842e07dc (patch)
tree1e665b4611641a6136e583aae8aacf3b733af2da /gcc/haifa-sched.c
parent246af050e7d8a91b14dc00f277a8c549260e2168 (diff)
downloadgcc-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.c25
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);