On 9/10/19 10:30 AM, Richard Sandiford wrote:
> Reusing the reasoning from the call_fixed_reg_set patch:
>
> for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
> for (j = 1; j <= MOVE_MAX_WORDS; j++)
> if (reg_save_code (i,regno_save_mode[i][j]) == -1)
>
> should be true whenever regno_save_mode[i][j] == VOIDmode,
> which it is for:
>
> ~call_used_reg_set | ~have_save_mode
>
> So this condition amounts to:
>
> ~call_used_reg_set | ~have_save_mode | ~have_save_insn
> == ~call_used_reg_set | ~savable_regs
>
> no_caller_save_reg_set is then set if call_used_regs[i], so
> no_caller_save_reg_set is:
>
> call_used_reg_set & (~call_used_reg_set | ~savable_regs)
> == call_used_reg_set & ~savable_regs
>
> This patch expands its single user accordingly.
>
> Note that ~savable_regs is always empty on LRA targets.
>
>
> 2019-09-10 Richard Sandiford <richard.sandif...@arm.com>
>
> gcc/
> * hard-reg-set.h (target_hard_regs::x_no_caller_save_reg_set): Delete.
> (no_caller_save_reg_set): Delete.
> * caller-save.c (init_caller_save): Don't initialize it.
> * ira-conflicts.c (ira_build_conflicts): Calculate
> no_caller_save_reg_set locally from call_used_reg_set and savable_regs.
OK
jeff