Near the end of assign_hard_reg in ira-color.c, there is this code:

if (min_full_cost > mem_cost)
  {
    if (! retry_p && internal_flag_ira_verbose > 3 && ira_dump_file !=
NULL)
        fprintf (ira_dump_file, "(memory is more profitable %d vs %d) ",
                 mem_cost, min_full_cost);
    best_hard_regno = -1;
  }


If retry_p is true then we are in reload, so I wouldn't expect us to
override best_hard_regno in this case.  I think the code should read:


if (min_full_cost > mem_cost && ! retry_p)
  {
    if (internal_flag_ira_verbose > 3 && ira_dump_file != NULL)
        fprintf (ira_dump_file, "(memory is more profitable %d vs %d) ",
                 mem_cost, min_full_cost);
    best_hard_regno = -1;
  }


I'm probably wrong, but I wanted to check.

Cheers,
Ian

Reply via email to