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