[Google] Skip LIPO type unification for trivial module groups

Teresa Johnson tejohnson@google.com
Thu Oct 10 19:03:00 GMT 2013


On Thu, Oct 10, 2013 at 11:42 AM, Xinliang David Li <davidxl@google.com> wrote:
> 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).

I don't understand why - the random group size is used at dyn-ipa time
to compute module groups, whereas this code happens during the
profile-use compile. If the random group was still trivial, why would
we want to do the type merging?

Teresa

>
> 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



-- 
Teresa Johnson | Software Engineer | tejohnson@google.com | 408-460-2413



More information about the Gcc-patches mailing list