lra-constraints.c (need_for_all_save_p): Use macro HARD_REGNO_CALL_PART_CLOBBERED.
2013-09-18 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (need_for_all_save_p): Use macro HARD_REGNO_CALL_PART_CLOBBERED. * lra-lives.c (check_pseudos_live_through_calls): Use the macro to set up pseudo conflict hard regs. From-SVN: r202721
This commit is contained in:
parent
09487185c8
commit
8a26ad39c4
@ -1,3 +1,10 @@
|
||||
2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
* lra-constraints.c (need_for_all_save_p): Use macro
|
||||
HARD_REGNO_CALL_PART_CLOBBERED.
|
||||
* lra-lives.c (check_pseudos_live_through_calls): Use the macro to
|
||||
set up pseudo conflict hard regs.
|
||||
|
||||
2013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||
|
||||
PR target/58452
|
||||
|
@ -4335,7 +4335,9 @@ need_for_call_save_p (int regno)
|
||||
return (usage_insns[regno].calls_num < calls_num
|
||||
&& (overlaps_hard_reg_set_p
|
||||
(call_used_reg_set,
|
||||
PSEUDO_REGNO_MODE (regno), reg_renumber[regno])));
|
||||
PSEUDO_REGNO_MODE (regno), reg_renumber[regno])
|
||||
|| HARD_REGNO_CALL_PART_CLOBBERED (reg_renumber[regno],
|
||||
PSEUDO_REGNO_MODE (regno))));
|
||||
}
|
||||
|
||||
/* Global registers occurring in the current EBB. */
|
||||
|
@ -457,11 +457,17 @@ lra_setup_reload_pseudo_preferenced_hard_reg (int regno,
|
||||
static inline void
|
||||
check_pseudos_live_through_calls (int regno)
|
||||
{
|
||||
int hr;
|
||||
|
||||
if (! sparseset_bit_p (pseudos_live_through_calls, regno))
|
||||
return;
|
||||
sparseset_clear_bit (pseudos_live_through_calls, regno);
|
||||
IOR_HARD_REG_SET (lra_reg_info[regno].conflict_hard_regs,
|
||||
call_used_reg_set);
|
||||
|
||||
for (hr = 0; hr < FIRST_PSEUDO_REGISTER; hr++)
|
||||
if (HARD_REGNO_CALL_PART_CLOBBERED (hr, PSEUDO_REGNO_MODE (regno)))
|
||||
SET_HARD_REG_BIT (lra_reg_info[regno].conflict_hard_regs, hr);
|
||||
#ifdef ENABLE_CHECKING
|
||||
lra_reg_info[regno].call_p = true;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user