diff options
author | drow <drow@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-13 18:09:55 +0000 |
---|---|---|
committer | drow <drow@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-13 18:09:55 +0000 |
commit | 1bb42c87b63905031e7cf9e0af434627f882b8f8 (patch) | |
tree | e850ce1ca545eaad896454198fdeff35370ff00f /gcc/gengtype.c | |
parent | 42bdde4b89a9232370e8091cf85021d476c2c1ec (diff) | |
download | ppe42-gcc-1bb42c87b63905031e7cf9e0af434627f882b8f8.tar.gz ppe42-gcc-1bb42c87b63905031e7cf9e0af434627f882b8f8.zip |
* ggc-zone.c: Rewritten.
* alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
if there are none.
* configure.ac: Define GGC_ZONE for --with-gc=zone.
* config.in: Regenerated.
* configure: Regenerated.
* gentype.c (write_types_process_field, write_func_for_structure):
Pass new argument to gt_pch_note_object.
* ggc-common.c (struct ptr_data): Add TYPE.
(gt_pch_note_object): Take TYPE argument and save it.
(call_count): Update call to ggc_pch_count_object.
(call_alloc): Update call to ggc_pch_alloc_object.
(gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
file.
* ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
* ggc-page.c (rtl_zone, tree_zone, garbage_zone)
(ggc_alloc_zone_stat): Delete.
(ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
* ggc.h (gt_pch_note_object, ggc_pch_count_object)
(ggc_pch_alloc_object): Update prototypes.
(garbage_zone): Delete.
(tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into
pointers.
(tree_id_zone): New variable.
(ggc_alloc_cleared_zone): Remove unused.
(ggc_alloc_zone): Define.
(ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
* rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
ggc_alloc_zone_stat.
* stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
* tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
(tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
(make_node_stat): Likewise. Use tree_id_zone.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96381 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gengtype.c')
-rw-r--r-- | gcc/gengtype.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/gcc/gengtype.c b/gcc/gengtype.c index e3de8225949..0ff0c116e62 100644 --- a/gcc/gengtype.c +++ b/gcc/gengtype.c @@ -1928,6 +1928,21 @@ write_types_process_field (type_p f, const struct walk_type_data *d) } else oprintf (d->of, ", gt_%sa_%s", wtd->param_prefix, d->prev_val[0]); + + if (f->u.p->kind == TYPE_PARAM_STRUCT + && f->u.p->u.s.line.file != NULL) + { + oprintf (d->of, ", gt_e_"); + output_mangled_typename (d->of, f); + } + else if (UNION_OR_STRUCT_P (f) + && f->u.p->u.s.line.file != NULL) + { + oprintf (d->of, ", gt_ggc_e_"); + output_mangled_typename (d->of, f); + } + else + oprintf (d->of, ", gt_types_enum_last"); } oprintf (d->of, ");\n"); if (d->reorder_fn && wtd->reorder_note_routine) @@ -2035,6 +2050,21 @@ write_func_for_structure (type_p orig_s, type_p s, type_p *param, { oprintf (d.of, ", x, gt_%s_", wtd->param_prefix); output_mangled_typename (d.of, orig_s); + + if (orig_s->u.p->kind == TYPE_PARAM_STRUCT + && orig_s->u.p->u.s.line.file != NULL) + { + oprintf (d.of, ", gt_e_"); + output_mangled_typename (d.of, orig_s); + } + else if (UNION_OR_STRUCT_P (orig_s) + && orig_s->u.s.line.file != NULL) + { + oprintf (d.of, ", gt_ggc_e_"); + output_mangled_typename (d.of, orig_s); + } + else + oprintf (d.of, ", gt_types_enum_last"); } oprintf (d.of, "))\n"); } @@ -2045,6 +2075,21 @@ write_func_for_structure (type_p orig_s, type_p s, type_p *param, { oprintf (d.of, ", xlimit, gt_%s_", wtd->param_prefix); output_mangled_typename (d.of, orig_s); + + if (orig_s->u.p->kind == TYPE_PARAM_STRUCT + && orig_s->u.p->u.s.line.file != NULL) + { + oprintf (d.of, ", gt_e_"); + output_mangled_typename (d.of, orig_s); + } + else if (UNION_OR_STRUCT_P (orig_s) + && orig_s->u.s.line.file != NULL) + { + oprintf (d.of, ", gt_ggc_e_"); + output_mangled_typename (d.of, orig_s); + } + else + oprintf (d.of, ", gt_types_enum_last"); } oprintf (d.of, "))\n"); oprintf (d.of, " xlimit = ("); @@ -2070,6 +2115,21 @@ write_func_for_structure (type_p orig_s, type_p s, type_p *param, { oprintf (d.of, ", xprev, gt_%s_", wtd->param_prefix); output_mangled_typename (d.of, orig_s); + + if (orig_s->u.p->kind == TYPE_PARAM_STRUCT + && orig_s->u.p->u.s.line.file != NULL) + { + oprintf (d.of, ", gt_e_"); + output_mangled_typename (d.of, orig_s); + } + else if (UNION_OR_STRUCT_P (orig_s) + && orig_s->u.s.line.file != NULL) + { + oprintf (d.of, ", gt_ggc_e_"); + output_mangled_typename (d.of, orig_s); + } + else + oprintf (d.of, ", gt_types_enum_last"); } oprintf (d.of, ");\n"); oprintf (d.of, " }\n"); |