diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2018-12-21 16:09:23 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2018-12-21 16:09:23 +0000 |
commit | dd9bf787d35f3d9a511e1b7c1d46e058631bb771 (patch) | |
tree | 112471151e4c1bfbf9b4e82ba5f3adb2ecd0a468 /gcc/combine.c | |
parent | 4a77025b7d680c2f8d8a04c1b769d28a5897234a (diff) | |
download | gcc-dd9bf787d35f3d9a511e1b7c1d46e058631bb771.zip gcc-dd9bf787d35f3d9a511e1b7c1d46e058631bb771.tar.gz gcc-dd9bf787d35f3d9a511e1b7c1d46e058631bb771.tar.bz2 |
re PR rtl-optimization/87727 (gcc.target/sparc/overflow-2.c FAILs)
PR rtl-optimization/87727
* combine.c (cant_combine_insn_p): On a LEAF_REGISTERS target, combine
again moves from leaf hard registers.
* final.c (final_scan_insn_1) <NOTE_INSN_INLINE_ENTRY>: Minor tweak.
From-SVN: r267328
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index a1d6e2d..6f1a335 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -2353,7 +2353,12 @@ cant_combine_insn_p (rtx_insn *insn) dest = SUBREG_REG (dest); if (REG_P (src) && REG_P (dest) && ((HARD_REGISTER_P (src) - && ! TEST_HARD_REG_BIT (fixed_reg_set, REGNO (src))) + && ! TEST_HARD_REG_BIT (fixed_reg_set, REGNO (src)) +#ifdef LEAF_REGISTERS + && ! LEAF_REGISTERS [REGNO (src)]) +#else + ) +#endif || (HARD_REGISTER_P (dest) && ! TEST_HARD_REG_BIT (fixed_reg_set, REGNO (dest)) && targetm.class_likely_spilled_p (REGNO_REG_CLASS (REGNO (dest)))))) |