Re: Compiling c++ template is very slow.

2018-03-09 Thread Nathan Sidwell
On 03/09/2018 08:42 AM, Richard Biener wrote: No. (if it's a vbase, it shows the offset in the complete object, IIRC, and there's other data to let code generation know some vtable inspection is needed when the dynamic type is unknown). So there's no multiple inheritance of classes with VLA me

Re: Compiling c++ template is very slow.

2018-03-09 Thread Richard Biener
On Fri, Mar 9, 2018 at 2:08 PM, Nathan Sidwell wrote: > On 03/09/2018 06:51 AM, Richard Biener wrote: >> >> On Fri, Mar 9, 2018 at 11:32 AM, Richard Biener >> wrote: > > >> callgrind shows that propagate_binfo_offsets recursing >> to self very many times is likely the issue. Your templates >> bu

Re: Compiling c++ template is very slow.

2018-03-09 Thread Nathan Sidwell
On 03/09/2018 06:51 AM, Richard Biener wrote: On Fri, Mar 9, 2018 at 11:32 AM, Richard Biener wrote: callgrind shows that propagate_binfo_offsets recursing to self very many times is likely the issue. Your templates build a very deep inheritance chain and it seems that the binfo offset propa

Re: Compiling c++ template is very slow.

2018-03-09 Thread Richard Biener
On Fri, Mar 9, 2018 at 11:32 AM, Richard Biener wrote: > On Fri, Mar 9, 2018 at 3:33 AM, Fis Trivial wrote: >> >> I tried to use c++ template to generate code for a personal project, but >> found that the compilation time needed with g++ is much >> slower(exponentially) than with clang++. >> >> T

Re: Compiling c++ template is very slow.

2018-03-09 Thread Richard Biener
On Fri, Mar 9, 2018 at 3:33 AM, Fis Trivial wrote: > > I tried to use c++ template to generate code for a personal project, but > found that the compilation time needed with g++ is much > slower(exponentially) than with clang++. > > This is a code snippet for testing purpose: > > #include > > tem