Maxim Kuvyrkov <maxim.kuvyr...@linaro.org> writes:
> @@ -6701,6 +6753,24 @@ alloc_global_sched_pressure_data (void)
>         saved_reg_live = BITMAP_ALLOC (NULL);
>         region_ref_regs = BITMAP_ALLOC (NULL);
>       }
> +
> +      /* Calculate number of CALL_USED_REGS in register classes that
> +      we calculate register pressure for.  */
> +      for (int c = 0; c < ira_pressure_classes_num; ++c)
> +     {
> +       enum reg_class cl = ira_pressure_classes[c];
> +
> +       call_used_regs_num[cl] = 0;
> +
> +       for (int i = 0; i < ira_class_hard_regs_num[cl]; ++i)
> +         if (call_used_regs[ira_class_hard_regs[cl][i]])
> +           {
> +             /* Register I belongs to pressure class CL.  Pressure
> +                classes do not intersect, so don't look further.  */
> +             ++call_used_regs_num[cl];
> +             break;
> +           }
> +     }

I don't think we want the break here.  The effect would be to count
at most one call-used register per pressure class.

Thanks,
Richard

Reply via email to