This is the mail archive of the gcc-patches@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]

Re: Variadic templates, fourth revision [Committed]


On 3/13/07, Richard Guenther <richard.guenther@gmail.com> wrote:
On 3/13/07, Paolo Bonzini <paolo.bonzini@lu.unisi.ch> wrote:
> >> > This causes a 15% compile time memory usage regression for tramp3d,
> >> > DLV and mico sources :/  (which makes it a release-blocker)
> >>
> >> Mem tester report 19% on Gerald's testcase.
> >
> > The patch here should fix the problem:
> >
> >  http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00759.html
>
> The patch only saves 1% though (from 437001kB down to 432961kB).

We'll see as soon as it is committed (I would say it's nearly
obvious...).  But I
fear that the above number hints at it being not fixed.

/* Determines if the expression or type T uses any parameter packs. */ bool uses_parameter_packs (tree t) { tree parameter_packs = NULL_TREE; struct find_parameter_pack_data ppd; ppd.parameter_packs = &parameter_packs; ppd.visited = pointer_set_create (); walk_tree (&t, &find_parameter_packs_r, &ppd, ppd.visited); return parameter_packs != NULL_TREE; }

This doesn't destroy the pointer set ... ;)

tree
make_pack_expansion (tree arg)
{
...
     /* Determine which parameter packs will be used by the base
        class expansion.  */
     ppd.visited = pointer_set_create ();
...
 /* Determine which parameter packs will be expanded.  */
 ppd.parameter_packs = &parameter_packs;
 ppd.visited = pointer_set_create ();

likewise.

void
check_for_bare_parameter_packs (tree t)
{
...
 ppd.parameter_packs = &parameter_packs;
 ppd.visited = pointer_set_create ();


again... (maybe more cases, I stopped looking)


(I wonder if using pointer-set's is worth it at all for walk_tree to
avoid walking
duplicates in all cases)

Richard.


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