aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>2016-07-13 02:44:28 +0000
committerTrevor Saunders <tbsaunde@gcc.gnu.org>2016-07-13 02:44:28 +0000
commit4a5a779a59456b83c3f75b09a54d845c540ef1c0 (patch)
treead9fe4e1f949cac9dee148e104d8da98e837e281 /gcc
parent06dc18b33ed6c755ea37c9a25da395cace5d3a3e (diff)
downloadgcc-4a5a779a59456b83c3f75b09a54d845c540ef1c0.zip
gcc-4a5a779a59456b83c3f75b09a54d845c540ef1c0.tar.gz
gcc-4a5a779a59456b83c3f75b09a54d845c540ef1c0.tar.bz2
ree.c: use auto_vec in ext_state
gcc/ChangeLog: 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * ree.c (struct ext_state): Make type of members auto_vec. (find_and_remove_re): Adjust. From-SVN: r238283
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ree.c19
2 files changed, 11 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7882dbfb..ebf64ca 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+ * ree.c (struct ext_state): Make type of members auto_vec.
+ (find_and_remove_re): Adjust.
+
+2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+
* cfgexpand.c (struct stack_vars_data): Make type of fields
auto_vec.
(expand_used_vars): Adjust.
diff --git a/gcc/ree.c b/gcc/ree.c
index 4627b4f..3245ac5 100644
--- a/gcc/ree.c
+++ b/gcc/ree.c
@@ -544,10 +544,10 @@ struct ext_state
/* In order to avoid constant alloc/free, we keep these
4 vectors live through the entire find_and_remove_re and just
truncate them each time. */
- vec<rtx_insn *> defs_list;
- vec<rtx_insn *> copies_list;
- vec<rtx_insn *> modified_list;
- vec<rtx_insn *> work_list;
+ auto_vec<rtx_insn *> defs_list;
+ auto_vec<rtx_insn *> copies_list;
+ auto_vec<rtx_insn *> modified_list;
+ auto_vec<rtx_insn *> work_list;
/* For instructions that have been successfully modified, this is
the original mode from which the insn is extending and
@@ -1147,7 +1147,6 @@ find_and_remove_re (void)
vec<ext_cand> reinsn_list;
auto_vec<rtx_insn *> reinsn_del_list;
auto_vec<rtx_insn *> reinsn_copy_list;
- ext_state state;
/* Construct DU chain to get all reaching definitions of each
extension instruction. */
@@ -1159,10 +1158,8 @@ find_and_remove_re (void)
max_insn_uid = get_max_uid ();
reinsn_list = find_removable_extensions ();
- state.defs_list.create (0);
- state.copies_list.create (0);
- state.modified_list.create (0);
- state.work_list.create (0);
+
+ ext_state state;
if (reinsn_list.is_empty ())
state.modified = NULL;
else
@@ -1238,10 +1235,6 @@ find_and_remove_re (void)
delete_insn (curr_insn);
reinsn_list.release ();
- state.defs_list.release ();
- state.copies_list.release ();
- state.modified_list.release ();
- state.work_list.release ();
XDELETEVEC (state.modified);
if (dump_file && num_re_opportunities > 0)