aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>2016-07-13 02:43:23 +0000
committerTrevor Saunders <tbsaunde@gcc.gnu.org>2016-07-13 02:43:23 +0000
commit3cc578b969fb0000072519ed61312ee6ad0f0197 (patch)
treeac246cd95517f860dbf269eebe369d3217bd7bf3
parentbf4fa671812c5e616c3cea5702d4ddcdf7a47d18 (diff)
downloadgcc-3cc578b969fb0000072519ed61312ee6ad0f0197.zip
gcc-3cc578b969fb0000072519ed61312ee6ad0f0197.tar.gz
gcc-3cc578b969fb0000072519ed61312ee6ad0f0197.tar.bz2
genextract.c: add [cd]tors to accum_extract
gcc/ChangeLog: 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * genextract.c (struct accum_extract): Add constructor and make members auto_vec. (gen_insn): Adjust. From-SVN: r238280
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/genextract.c23
2 files changed, 13 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6ab7475..16198c1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+ * genextract.c (struct accum_extract): Add constructor and make
+ members auto_vec.
+ (gen_insn): Adjust.
+
+2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+
* tree.c (struct free_lang_data_d): Add constructor and change
types of members to ones that automatically manage resources.
(fld_worklist_push): Adjust.
diff --git a/gcc/genextract.c b/gcc/genextract.c
index d591781..e6d5337 100644
--- a/gcc/genextract.c
+++ b/gcc/genextract.c
@@ -69,10 +69,12 @@ static struct code_ptr *peepholes;
struct accum_extract
{
- vec<locstr> oplocs;
- vec<locstr> duplocs;
- vec<int> dupnums;
- vec<char> pathstr;
+ accum_extract () : oplocs (10), duplocs (10), dupnums (10), pathstr (20) {}
+
+ auto_vec<locstr> oplocs;
+ auto_vec<locstr> duplocs;
+ auto_vec<int> dupnums;
+ auto_vec<char> pathstr;
};
/* Forward declarations. */
@@ -87,11 +89,6 @@ gen_insn (md_rtx_info *info)
struct code_ptr *link;
struct accum_extract acc;
- acc.oplocs.create (10);
- acc.duplocs.create (10);
- acc.dupnums.create (10);
- acc.pathstr.create (20);
-
/* Walk the insn's pattern, remembering at all times the path
down to the walking point. */
@@ -142,7 +139,7 @@ gen_insn (md_rtx_info *info)
/* This extraction is the same as ours. Just link us in. */
link->next = p->insns;
p->insns = link;
- goto done;
+ return;
}
/* Otherwise, make a new extraction method. We stash the arrays
@@ -166,12 +163,6 @@ gen_insn (md_rtx_info *info)
memcpy (p->oplocs, acc.oplocs.address (), op_count * sizeof (locstr));
memcpy (p->duplocs, acc.duplocs.address (), dup_count * sizeof (locstr));
memcpy (p->dupnums, acc.dupnums.address (), dup_count * sizeof (int));
-
- done:
- acc.oplocs.release ();
- acc.duplocs.release ();
- acc.dupnums.release ();
- acc.pathstr.release ();
}
/* Helper subroutine of walk_rtx: given a vec<locstr>, an index, and a