combine: Don't make log_links for pc_rtx (PR84780 #c10)

distribute_links tries to place a log_link for whatever the destination
of the modified instruction is.  It shouldn't do that when that dest
is pc_rtx, which isn't actually a register.


	* combine.c (distribute_links): Don't make a link based on pc_rtx.

From-SVN: r258523
This commit is contained in:
Segher Boessenkool 2018-03-14 13:24:21 +01:00 committed by Segher Boessenkool
parent af1430196a
commit def703386a
2 changed files with 8 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2018-03-14 Segher Boessenkool <segher@kernel.crashing.org>
PR rtl-optimization/84780
* combine.c (distribute_links): Don't make a link based on pc_rtx.
2018-03-14 Martin Liska <mliska@suse.cz> 2018-03-14 Martin Liska <mliska@suse.cz>
* tree.c (record_node_allocation_statistics): Use * tree.c (record_node_allocation_statistics): Use

View File

@ -14778,6 +14778,9 @@ distribute_links (struct insn_link *links)
|| GET_CODE (reg) == SUBREG) || GET_CODE (reg) == SUBREG)
reg = XEXP (reg, 0); reg = XEXP (reg, 0);
if (reg == pc_rtx)
continue;
/* A LOG_LINK is defined as being placed on the first insn that uses /* A LOG_LINK is defined as being placed on the first insn that uses
a register and points to the insn that sets the register. Start a register and points to the insn that sets the register. Start
searching at the next insn after the target of the link and stop searching at the next insn after the target of the link and stop