This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/42814] gcc segfaults on gch



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]