[Bug libstdc++/80290] [6/7 Regression] g++ uses unreasonable amount of memory compiling nested string maps
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Apr 4 08:07:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80290
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
All memory is allocated during
Run till exit from #84 0x000000000080a9f7 in check_initializer (
decl=<var_decl 0x7ffff4ecdea0 frus>, init=<constructor 0x7ffff4dc2678>,
flags=5, cleanups=0x7fffffffd7f0)
at /space/rguenther/src/svn/gcc-7-branch/gcc/cp/decl.c:6318
...
Run till exit from #104 0x00000000009d4b2f in expand_default_init (
binfo=<tree_binfo 0x7ffff4ece960>,
true_exp=<var_decl 0x7ffff4ecdea0 frus>,
exp=<var_decl 0x7ffff4ecdea0 frus>, init=<constructor 0x7ffff4dc2678>,
flags=5, complain=3)
at /space/rguenther/src/svn/gcc-7-branch/gcc/cp/init.c:1787
where it all the time does template instantiation and overload resolution. I
wonder if some trivial caching of "last elements overload set" during
initializer processing could speed up things dramatically and avoid generating
so much garbage
(we don't GC during a single check_initializer call).
More information about the Gcc-bugs
mailing list