From d8d3cc098eda75481a13d66f6e04fadffc5cecff Mon Sep 17 00:00:00 2001 From: Peter Bergner Date: Fri, 12 Oct 2018 16:31:11 +0000 Subject: [PATCH] re PR rtl-optimization/87600 (Fix for PRs 86939 and 87479 causes build issues for several targets) PR rtl-optimization/87600 * ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets. From-SVN: r265113 --- gcc/ChangeLog | 5 +++++ gcc/ira-lives.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 23933675618..ac010614459 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-10-12 Peter Bergner + + PR rtl-optimization/87600 + * ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets. + 2018-10-12 Paul Koning * doc/md.texi (doloop_end): Document that the pattern code may diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c index dd8b334d58e..c5e85b91f48 100644 --- a/gcc/ira-lives.c +++ b/gcc/ira-lives.c @@ -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 -- 2.30.2