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
This commit is contained in:
Trevor Saunders 2016-07-13 02:43:23 +00:00 committed by Trevor Saunders
parent bf4fa67181
commit 3cc578b969
2 changed files with 13 additions and 16 deletions

View file

@ -1,3 +1,9 @@
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

View file

@ -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