Commit ac684a20 by Jeff Law

flow.c (life_analysis): Delete obvious no-op moves which use SUBREGs.

        * flow.c (life_analysis): Delete obvious no-op moves
        which use SUBREGs.

From-SVN: r13607
parent f19911e4
...@@ -996,6 +996,23 @@ life_analysis (f, nregs) ...@@ -996,6 +996,23 @@ life_analysis (f, nregs)
NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED; NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
NOTE_SOURCE_FILE (insn) = 0; NOTE_SOURCE_FILE (insn) = 0;
} }
/* Delete (in effect) any obvious no-op moves. */
else if (GET_CODE (PATTERN (insn)) == SET
&& GET_CODE (SET_DEST (PATTERN (insn))) == SUBREG
&& GET_CODE (SUBREG_REG (SET_DEST (PATTERN (insn)))) == REG
&& GET_CODE (SET_SRC (PATTERN (insn))) == SUBREG
&& GET_CODE (SUBREG_REG (SET_SRC (PATTERN (insn)))) == REG
&& REGNO (SUBREG_REG (SET_DEST (PATTERN (insn)))) ==
REGNO (SUBREG_REG (SET_SRC (PATTERN (insn))))
&& SUBREG_WORD (SET_DEST (PATTERN (insn))) ==
SUBREG_WORD (SET_SRC (PATTERN (insn)))
/* Insns carrying these notes are useful later on. */
&& ! find_reg_note (insn, REG_EQUAL, NULL_RTX))
{
PUT_CODE (insn, NOTE);
NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
NOTE_SOURCE_FILE (insn) = 0;
}
else if (GET_CODE (PATTERN (insn)) == PARALLEL) else if (GET_CODE (PATTERN (insn)) == PARALLEL)
{ {
/* If nothing but SETs of registers to themselves, /* If nothing but SETs of registers to themselves,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment