re PR rtl-optimization/87600 (Fix for PRs 86939 and 87479 causes build issues for...
authorPeter Bergner <bergner@linux.ibm.com>
Fri, 12 Oct 2018 16:31:11 +0000 (16:31 +0000)
committerPeter Bergner <bergner@gcc.gnu.org>
Fri, 12 Oct 2018 16:31:11 +0000 (11:31 -0500)
PR rtl-optimization/87600
* ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets.

From-SVN: r265113

gcc/ChangeLog
gcc/ira-lives.c

index 239336756187dafa957b03fb92f78aa192269171..ac0106144596760b9fc3bdb5dcec9447158fbbb4 100644 (file)
@@ -1,3 +1,8 @@
+2018-10-12  Peter Bergner  <bergner@linux.ibm.com>
+
+       PR rtl-optimization/87600
+       * ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets.
+
 2018-10-12  Paul Koning  <ni1d@arrl.net>
 
        * doc/md.texi (doloop_end): Document that the pattern code may
index dd8b334d58ec4a5acfeeeb8f49af3137003fabdc..c5e85b91f48e7423e93aa78c9ed736421b718be0 100644 (file)
@@ -1064,6 +1064,11 @@ find_call_crossed_cheap_reg (rtx_insn *insn)
 rtx
 non_conflicting_reg_copy_p (rtx_insn *insn)
 {
+  /* Reload has issues with overlapping pseudos being assigned to the
+     same hard register, so don't allow it.  See PR87600 for details.  */
+  if (!targetm.lra_p ())
+    return NULL_RTX;
+
   rtx set = single_set (insn);
 
   /* Disallow anything other than a simple register to register copy