mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
4a77025b7d
commit
dd9bf787d3
|
|
@ -1,3 +1,11 @@
|
||||||
|
2018-12-21 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
2018-12-21 Jakub Jelinek <jakub@redhat.com>
|
2018-12-21 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR target/88522
|
PR target/88522
|
||||||
|
|
|
||||||
|
|
@ -2353,7 +2353,12 @@ cant_combine_insn_p (rtx_insn *insn)
|
||||||
dest = SUBREG_REG (dest);
|
dest = SUBREG_REG (dest);
|
||||||
if (REG_P (src) && REG_P (dest)
|
if (REG_P (src) && REG_P (dest)
|
||||||
&& ((HARD_REGISTER_P (src)
|
&& ((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)
|
|| (HARD_REGISTER_P (dest)
|
||||||
&& ! TEST_HARD_REG_BIT (fixed_reg_set, REGNO (dest))
|
&& ! TEST_HARD_REG_BIT (fixed_reg_set, REGNO (dest))
|
||||||
&& targetm.class_likely_spilled_p (REGNO_REG_CLASS (REGNO (dest))))))
|
&& targetm.class_likely_spilled_p (REGNO_REG_CLASS (REGNO (dest))))))
|
||||||
|
|
|
||||||
|
|
@ -2430,10 +2430,9 @@ final_scan_insn_1 (rtx_insn *insn, FILE *file, int optimize_p ATTRIBUTE_UNUSED,
|
||||||
|
|
||||||
case NOTE_INSN_INLINE_ENTRY:
|
case NOTE_INSN_INLINE_ENTRY:
|
||||||
gcc_checking_assert (cfun->debug_nonbind_markers);
|
gcc_checking_assert (cfun->debug_nonbind_markers);
|
||||||
if (!DECL_IGNORED_P (current_function_decl))
|
if (!DECL_IGNORED_P (current_function_decl)
|
||||||
|
&& notice_source_line (insn, NULL))
|
||||||
{
|
{
|
||||||
if (!notice_source_line (insn, NULL))
|
|
||||||
break;
|
|
||||||
(*debug_hooks->inline_entry) (LOCATION_BLOCK
|
(*debug_hooks->inline_entry) (LOCATION_BLOCK
|
||||||
(NOTE_MARKER_LOCATION (insn)));
|
(NOTE_MARKER_LOCATION (insn)));
|
||||||
goto output_source_line;
|
goto output_source_line;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue