From: Segher Boessenkool Date: Wed, 14 Mar 2018 12:24:21 +0000 (+0100) Subject: combine: Don't make log_links for pc_rtx (PR84780 #c10) X-Git-Tag: basepoints/gcc-9~686 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=def703386a1efb5e48b24b1457ce679667e137c9;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 104e44255e6b..fcd11eb7db37 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-03-14 Segher Boessenkool + + PR rtl-optimization/84780 + * combine.c (distribute_links): Don't make a link based on pc_rtx. + 2018-03-14 Martin Liska * tree.c (record_node_allocation_statistics): Use diff --git a/gcc/combine.c b/gcc/combine.c index 06a9ddde8586..ff672ad2adbe 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -14778,6 +14778,9 @@ distribute_links (struct insn_link *links) || GET_CODE (reg) == SUBREG) reg = XEXP (reg, 0); + if (reg == pc_rtx) + continue; + /* 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 searching at the next insn after the target of the link and stop