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

--- Comment #25 from Markus Trippelsdorf <markus at trippelsdorf dot de> 
2011-12-22 09:48:27 UTC ---
(In reply to comment #23)
> Another fun (well ...) patch that is worth trying is
> 
> Index: gcc/gimple.c
> ===================================================================
> --- gcc/gimple.c        (revision 182590)
> +++ gcc/gimple.c        (working copy)
> @@ -4488,16 +4488,7 @@ gimple_register_type_1 (tree t, bool reg
>  tree
>  gimple_register_type (tree t)
>  {
> -  gcc_assert (TYPE_P (t));
> -
> -  if (!gimple_type_leader)
> -    gimple_type_leader = ggc_alloc_cleared_vec_gimple_type_leader_entry_s
> -                               (GIMPLE_TYPE_LEADER_SIZE);
> -
> -  if (gimple_types == NULL)
> -    gimple_types = htab_create_ggc (16381, gimple_type_hash, gimple_type_eq,
> 0);
> -
> -  return gimple_register_type_1 (t, false);
> +  return t;
>  }
> 
>  /* The TYPE_CANONICAL merging machinery.  It should closely resemble
> 
> where you need to configure with --disable-werror (because of now unused
> functions in gimple.c).  The above will simply disable all type merging
> and thus may in theory increase memory usage a lot (I think so more for
> ltrans stage than wpa stage, it also may increase ltrans file size a lot).
> It also probably increases the size of the emitted debug information.

Not really feasible:
13.5 minutes CPU-time, 7.5GB RAM used, 6.3GB ltrans files
(and then lto1 on the individual partitions also takes ~2min per instance)

 88.80%  lto1                           [.] lto_read_decls
  0.51%  lto1                           [.] htab_expand
  0.42%  libz.so.1.2.5.1                [.] inflate_fast
  0.35%  lto1                           [.] htab_find_slot_with_hash
  0.30%  lto1                           [.] gimple_canonical_types_compatible_p

Reply via email to