This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Google] Skip LIPO type unification for trivial module groups


I see, we would be using the presence of this parameter to drive lipo
stress-testing in general. I made the change and added a comment to
that effect and will commit it.
Thanks,
Teresa

On Thu, Oct 10, 2013 at 12:03 PM, Xinliang David Li <davidxl@google.com> wrote:
> The option/parameter in theory should not have any effect to
> profile-use build, but it is usually passed to both profile-gen and
> profile-use compilation.
>
> The reason to turn it on is to surface the type of  error you have
> fixed recently (it is triggered only with trivial module group).
>
> David
>
> On Thu, Oct 10, 2013 at 11:51 AM, Teresa Johnson <tejohnson@google.com> wrote:
>> 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



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]