aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-07-26 09:31:00 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-07-26 09:31:00 -0400
commit98369a0f8ac63ad3d76e8f9a55b282182d42a10f (patch)
tree8f2db1dfa1f56e5e214cc0b2fc3853de94e673d4 /gcc
parentb8913d054755f4dcfbea7fe572258abdcc18ee36 (diff)
downloadgcc-98369a0f8ac63ad3d76e8f9a55b282182d42a10f.zip
gcc-98369a0f8ac63ad3d76e8f9a55b282182d42a10f.tar.gz
gcc-98369a0f8ac63ad3d76e8f9a55b282182d42a10f.tar.bz2
(cse_insn): When do special handling for (set REG0 REG1), must delete
REG_EQUAL note from insn if it mentions REG0. From-SVN: r10169
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cse.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 1b302f5..3c5ba6f 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7417,6 +7417,12 @@ cse_insn (insn, in_libcall_block)
XEXP (note, 1) = REG_NOTES (prev);
REG_NOTES (prev) = note;
}
+
+ /* If INSN has a REG_EQUAL note, and this note mentions REG0,
+ then we must delete it, because the value in REG0 has changed. */
+ note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
+ if (note && reg_mentioned_p (dest, XEXP (note, 0)))
+ remove_note (insn, note);
}
}