In split_live_ranges_for_shrink_wrap IRA also splits regs that are
only used in debug insns, leading to -fcompare-debug failures.

Bootstrapped and tested on powerpc64-linux {-m32,-m64}.  This happens
on at least GCC 5, so not a regression; but it is trivial and obvious,
is it okay for trunk anyway?


Segher


2017-04-18  Segher Boessenkool  <seg...@kernel.crashing.org>

        PR rtl-optimization/80429
        * ira.c (split_live_ranges_for_shrink_wrap): Skip DEBUG_INSNs.

---
 gcc/ira.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gcc/ira.c b/gcc/ira.c
index 7079573..1f760fe 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -4999,6 +4999,9 @@ split_live_ranges_for_shrink_wrap (void)
          rtx_insn *uin = DF_REF_INSN (use);
          next = DF_REF_NEXT_REG (use);
 
+         if (DEBUG_INSN_P (uin))
+           continue;
+
          basic_block ubb = BLOCK_FOR_INSN (uin);
          if (ubb == call_dom
              || dominated_by_p (CDI_DOMINATORS, ubb, call_dom))
-- 
1.9.3

Reply via email to