aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-10-20 19:14:10 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-10-20 19:14:10 -0400
commitd02089a5f24db5cea75174304a367b8b5555ddb8 (patch)
tree258edc90ec9a796278cb454e3a8cad77bc2e787c
parent089a0f3971d78252014ade3acbb9f1087b6d8740 (diff)
downloadgcc-d02089a5f24db5cea75174304a367b8b5555ddb8.zip
gcc-d02089a5f24db5cea75174304a367b8b5555ddb8.tar.gz
gcc-d02089a5f24db5cea75174304a367b8b5555ddb8.tar.bz2
(distribute_notes): Delete instructions without side effect that set a
subreg of an unused register. From-SVN: r10491
-rw-r--r--gcc/combine.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index cd7dc12..3cdfb32 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -10745,7 +10745,10 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
modified the register. */
if (set != 0 && ! side_effects_p (SET_SRC (set))
- && rtx_equal_p (XEXP (note, 0), SET_DEST (set)))
+ && (rtx_equal_p (XEXP (note, 0), SET_DEST (set))
+ || (GET_CODE (SET_DEST (set)) == SUBREG
+ && rtx_equal_p (XEXP (note, 0),
+ XEXP (SET_DEST (set), 0)))))
{
/* Move the notes and links of TEM elsewhere.
This might delete other dead insns recursively.