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: [PATCH, PR60738] More LRA split for regno conflicting with single reg class operand


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


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