From: Vladimir Makarov Date: Mon, 22 Jun 2015 18:17:28 +0000 (+0000) Subject: re PR bootstrap/63740 (GCC 4.9.2 bootstrap fails on ARM, haifa-sched.c:6507:1: intern... X-Git-Tag: releases/gcc-4.9.3~59 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=226631618cf17b22252e363d0ebdc1128730104c;p=thirdparty%2Fgcc.git re PR bootstrap/63740 (GCC 4.9.2 bootstrap fails on ARM, haifa-sched.c:6507:1: internal compiler error: in lra_create) 2015-06-22 Vladimir Makarov PR bootstrap/63740 * lra-lives.c (process_bb_lives): Check insn copying the same reload pseudo and don't create a copy for it. From-SVN: r224752 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e1c59da1118..9f59faf51a15 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-06-22 Vladimir Makarov + + PR bootstrap/63740 + * lra-lives.c (process_bb_lives): Check insn copying the same + reload pseudo and don't create a copy for it. + 2015-06-19 Christophe Lyon Backport from mainline r215707. diff --git a/gcc/lra-lives.c b/gcc/lra-lives.c index 8444adee6d8d..6b8efdcdeca4 100644 --- a/gcc/lra-lives.c +++ b/gcc/lra-lives.c @@ -565,7 +565,15 @@ process_bb_lives (basic_block bb, int &curr_point) dst_regno = REGNO (SET_DEST (set)); if (dst_regno >= lra_constraint_new_regno_start && src_regno >= lra_constraint_new_regno_start) - lra_create_copy (dst_regno, src_regno, freq); + { + /* It might be still an original (non-reload) insn with + one unused output and a constraint requiring to use + the same reg for input/output operands. In this case + dst_regno and src_regno have the same value, we don't + need a misleading copy for this case. */ + if (dst_regno != src_regno) + lra_create_copy (dst_regno, src_regno, freq); + } else if (dst_regno >= lra_constraint_new_regno_start) { if ((hard_regno = src_regno) >= FIRST_PSEUDO_REGISTER)