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