------- Comment #11 from JamesMikeDuPont at googlemail dot com  2010-01-20 
20:54 -------
Subject: Re:  gcc segfaults on gch

so I am thinking about a way to wrap the existing templates that I use.
there must be a way to reduce the size of the gch by specifing a list
of classes we use. that would reduce the build size.

this boost lib takes forever to process.
We only use %1 of it at a time. There has got to be a way to
precompile all these templates. A nice fine grained, for each header,
external pch database for stl and boost would make working with them
fun again.

I have been experimenting with grouping the headers into groups of
common dependencies. Basically I made a type level dependency tree
that is sliced up into pools of common types and topologically sorted
so that we can compile the the gch files in the right order and
include the previous gch.

I would consider putting some time into helping make the gch better if
you give me direction.

mike

On Wed, Jan 20, 2010 at 9:47 PM, rguenth at gcc dot gnu dot org
<gcc-bugzi...@gcc.gnu.org> wrote:
>
>
> ------- Comment #10 from rguenth at gcc dot gnu dot org  2010-01-20 20:47 
> -------
> With unoptimized trunk I see us blowing the stack during garbage-collecting.
> Note that we have a load of templates in this testcase and we walk them in
> unfortunate order.
>
> (gdb)
> #79368 0x0835b9fb in ggc_collect ()
>    at /home/richard/src/trunk/gcc/ggc-page.c:1962
> 1962      ggc_mark_roots ();
>
>
> ugh.  We reach stuff from the function decl type.
>
> 400                   gt_ggc_m_9tree_node ((*x).generic.type.size_unit);
> (gdb)
> #79358 0x0828fdc9 in gt_ggc_mx_lang_tree_node (x_p=0xb772f378)
>    at ./gt-cp-tree.h:163
> 163                   gt_ggc_m_9tree_node ((*x).generic.int_cst.common.type);
> (gdb)
> #79357 0x0829106b in gt_ggc_mx_lang_tree_node (x_p=0xb7743000)
>    at ./gt-cp-tree.h:398
> 398                   gt_ggc_m_9tree_node ((*x).generic.type.values);
>
> hmm ...
>
> #79349 0x0829115c in gt_ggc_mx_lang_tree_node (x_p=0xa83ff180)
>    at ./gt-cp-tree.h:417
> 417                   gt_ggc_m_9tree_node ((*x).generic.type.name);
> (gdb)
>
> #79348 0x08290cb9 in gt_ggc_mx_lang_tree_node (x_p=0xa8400138)
>    at ./gt-cp-tree.h:355
> 355                   gt_ggc_m_9tree_node
> ((*x).generic.type_decl.common.common.common.common.common.context);
> (gdb)
> #79347 0x0829106b in gt_ggc_mx_lang_tree_node (x_p=0xa83ff000)
>    at ./gt-cp-tree.h:398
> 398                   gt_ggc_m_9tree_node ((*x).generic.type.values);
> (gdb)
> #79346 0x08290229 in gt_ggc_mx_lang_tree_node (x_p=0xa84003a8)
>    at ./gt-cp-tree.h:228
> 228                   gt_ggc_m_9tree_node
> ((*x).generic.decl_non_common.common.common.common.common.common.type);
> (gdb)
> #79345 0x0829121c in gt_ggc_mx_lang_tree_node (x_p=0xa83ff420)
>    at ./gt-cp-tree.h:425
> 425                   gt_ggc_m_9lang_type ((*x).generic.type.lang_specific);
> (gdb)
> #79344 0x08292154 in gt_ggc_mx_lang_type (x_p=0xa83fdaa0) at 
> ./gt-cp-tree.h:713
> 713               gt_ggc_m_9tree_node ((*x).u.c.template_info);
>
>
> hmm - we reach templates via integer constants ...
>
>
> --
>
> rguenth at gcc dot gnu dot org changed:
>
>           What    |Removed                     |Added
> ----------------------------------------------------------------------------
>             Status|WAITING                     |NEW
>     Ever Confirmed|0                           |1
>   Last reconfirmed|0000-00-00 00:00:00         |2010-01-20 20:47:22
>               date|                            |
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42814
>
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.
>


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42814

Reply via email to