Segher Boessenkool <seg...@kernel.crashing.org> writes:

> Hi!
>
> On Wed, Oct 30, 2019 at 11:34:42AM +0800, Jiufu Guo wrote:
>> In this patch, loop unroll adjust hook is introduced for powerpc. In this 
>> hook,
>> we can do target related hueristic adjustment. For this patch, we tunned for
>> O2 to unroll small loops with small unroll factor (2 times), for other
>> optimization, default unroll factor is used.
>
>> 2019-10-30  Jiufu Guo  <guoji...@linux.ibm.com>          
>> 
>>      PR tree-optimization/88760
>
> I think this should be "target"?  (Change it in bugzilla if you change it
> here, of course).
Or should I open a new bug, then PR88760 could be keep for tree-optimization?
>
>>      * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
>>      code which changes PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS.
>>      (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook.
>>      (rs6000_loop_unroll_adjust): New hook for loop unroll adjust. Unrolling
>>      small loop 2 times for -O2.
>
> (Two spaces after a full stop).
>
>> +/* This target hook implementation for TARGET_LOOP_UNROLL_ADJUST calculates
>> +   a new heristic number struct loop *loop should be unrolled.  */
>
> "heuristic". 
>
> Argument names are written in ALL CAPS, and repeating the type is useless
> here (you can see it just a few lines down).  But anyway, everything else
> here just says things like
>
> /*  Implement targetm.loop_unroll_adjust.  */
>
> so just do that?
>
>> +static unsigned
>> +rs6000_loop_unroll_adjust (unsigned nunroll, struct loop * loop)
>> +{
>> +  /* For -O2, we only unroll small loops with small unroll factor.  */
>> +  if (optimize == 2)
>> +    {
>> +      /* If the loop contains few insns, treated it as small loops.
>> +     TODO: Uing 10 hard code for now.  Continue to refine, For example,
>> +     if loop constians only 1-2 insns, we may unroll more times(4).
>> +     And we may use PARAM to control kinds of loop size.  */
>
> That first line has no new information.  So maybe something like
>       /* TODO: This is hardcoded to 10 right now.  It can be refined, for
>        example we may want to unroll very small loops more times (4 perhaps).
>        We also should use a PARAM for this.  */
Thanks for your so detail and careful suggestions which always help me
to make patch better! 
>
> Okay for trunk like that.  Thanks!
>
>
> Segher

Reply via email to