sh: Fixes for RTL checking
* config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of a REG, look at the REG it is a SUBREG of. (splitter for cmpeqsi_t): Ditto. From-SVN: r245727
This commit is contained in:
parent
8faa81184f
commit
91f66e78cc
2 changed files with 16 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
* config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
|
||||
a REG, look at the REG it is a SUBREG of.
|
||||
(splitter for cmpeqsi_t): Ditto.
|
||||
|
||||
2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
* config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
|
||||
|
|
|
@ -561,8 +561,12 @@
|
|||
gcc_assert (CONST_INT_P (operands[1]));
|
||||
|
||||
HOST_WIDE_INT op1val = INTVAL (operands[1]);
|
||||
rtx reg = operands[0];
|
||||
if (SUBREG_P (reg))
|
||||
reg = SUBREG_REG (reg);
|
||||
gcc_assert (REG_P (reg));
|
||||
bool op0_dead_after_this =
|
||||
sh_reg_dead_or_unused_after_insn (curr_insn, REGNO (operands[0]));
|
||||
sh_reg_dead_or_unused_after_insn (curr_insn, REGNO (reg));
|
||||
|
||||
if (optimize)
|
||||
{
|
||||
|
@ -834,7 +838,11 @@
|
|||
/* If the tested reg is not dead after this insn, it's probably used by
|
||||
something else after the comparison. It's probably better to leave
|
||||
it as it is. */
|
||||
if (find_regno_note (curr_insn, REG_DEAD, REGNO (operands[0])) == NULL_RTX)
|
||||
rtx reg = operands[0];
|
||||
if (SUBREG_P (reg))
|
||||
reg = SUBREG_REG (reg);
|
||||
gcc_assert (REG_P (reg));
|
||||
if (find_regno_note (curr_insn, REG_DEAD, REGNO (reg)) != NULL_RTX)
|
||||
FAIL;
|
||||
|
||||
/* FIXME: Maybe also search the predecessor basic blocks to catch
|
||||
|
|
Loading…
Add table
Reference in a new issue