[Google] Skip LIPO type unification for trivial module groups

Xinliang David Li davidxl@google.com
Thu Oct 10 18:51:00 GMT 2013


It is better to turn it on when random stress test is also on: param
value of PARAM_LIPO_RANDOM_GROUP_SIZE is not the default value (0).

if (!L_IPO_COMP_MODE || (num_in_fnames == 1 && PARAM_VALUE
(PARAM_LIPO_RANDOM_GROUP_SIZE) == 0))

ok with this change.

David

On Thu, Oct 10, 2013 at 11:27 AM, Teresa Johnson <tejohnson@google.com> wrote:
> The following patch fixes an inefficiency whereby type unification
> was being attempted unnecessarily in LIPO even when there were no
> aux modules.
>
> Tested with regression tests and internal LIPO benchmark.
>
> Ok for google/4_8?
>
> Thanks,
> Teresa
>
> 2013-10-10  Teresa Johnson  <tejohnson@google.com>
>
>         * l-ipo.c (cgraph_unify_type_alias_sets): Skip LIPO type
>         unification when there are no aux modules.
>
> Index: l-ipo.c
> ===================================================================
> --- l-ipo.c     (revision 203260)
> +++ l-ipo.c     (working copy)
> @@ -1059,7 +1059,7 @@ cgraph_unify_type_alias_sets (void)
>    struct cgraph_node *node;
>    struct varpool_node *pv;
>
> -  if (!L_IPO_COMP_MODE)
> +  if (!L_IPO_COMP_MODE || num_in_fnames == 1)
>      return;
>
>    vec_alloc (pending_types, 100);
>
> --
> Teresa Johnson | Software Engineer | tejohnson@google.com | 408-460-2413



More information about the Gcc-patches mailing list