On Sat, Apr 26, 2014 at 5:35 AM, Wei Mi wrote:
> Index: ira-lives.c
> ===================================================================
> --- ira-lives.c (revision 209253)
> +++ ira-lives.c (working copy)
> @@ -1025,7 +1025,11 @@ process_single_reg_class_operands (bool
>          {
>           ira_object_t obj = ira_object_id_map[px];
>           a = OBJECT_ALLOCNO (obj);
> -         if (a != operand_a)
> +         /* If a is much hotter in some other region, don't add reg class
> +            cl into its conflict hardreg set. Let lra_split to do splitting
> +            here for operand_a.  */
> +         if (a != operand_a
> +             && (LRA_SPLIT_FREQ_RATIO * freq >= a->freq))
>             {
>               /* We could increase costs of A instead of making it
>                  conflicting with the hard register.  But it works worse

AFAICT this path is not LRA specific, so your patch may break ports
still relying on reload.

Ciao!
Steven

Reply via email to