aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/cse.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a98964b..daa2d94 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2007-07-09 Jan HUbicka <jh@suse.cz>
+
+ * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
+
2007-07-09 Richard Guenther <rguenther@suse.de>
* c-decl.c (start_function): Do not promote return type.
diff --git a/gcc/cse.c b/gcc/cse.c
index d79ad68..234bcc7 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -4830,7 +4830,8 @@ cse_insn (rtx insn, rtx libcall_insn)
;
/* Look for a substitution that makes a valid insn. */
- else if (validate_change (insn, &SET_SRC (sets[i].rtl), trial, 0))
+ else if (validate_unshare_change
+ (insn, &SET_SRC (sets[i].rtl), trial, 0))
{
rtx new = canon_reg (SET_SRC (sets[i].rtl), insn);