Avoid removing sets of a pseudo PIC register in LRA.

PR rtl-optimization/69648
	* lra-constraints.c (update_ebb_live_info): Don't remove sets of
	pic_offset_table_rtx.

From-SVN: r233424
This commit is contained in:
Bernd Schmidt 2016-02-15 12:06:44 +00:00 committed by Bernd Schmidt
parent 07b383317d
commit 53250f44c0
2 changed files with 7 additions and 1 deletions

View File

@ -1,5 +1,9 @@
2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
PR rtl-optimization/69648
* lra-constraints.c (update_ebb_live_info): Don't remove sets of
pic_offset_table_rtx.
PR rtl-optimization/69752
* ira.c (update_equiv_regs): When looking for more than a single SET,
also take other side effects into account.

View File

@ -5178,8 +5178,10 @@ update_ebb_live_info (rtx_insn *head, rtx_insn *tail)
curr_id = lra_get_insn_recog_data (curr_insn);
curr_static_id = curr_id->insn_static_data;
remove_p = false;
if ((set = single_set (curr_insn)) != NULL_RTX && REG_P (SET_DEST (set))
if ((set = single_set (curr_insn)) != NULL_RTX
&& REG_P (SET_DEST (set))
&& (regno = REGNO (SET_DEST (set))) >= FIRST_PSEUDO_REGISTER
&& SET_DEST (set) != pic_offset_table_rtx
&& bitmap_bit_p (&check_only_regs, regno)
&& ! bitmap_bit_p (&live_regs, regno))
remove_p = true;