http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51635
--- Comment #23 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-12-21 16:01:30 UTC --- 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.