* cse.c (cse_insn): Avoid invalid sharing on trial replacement.
authorJan Hubicka <jh@suse.cz>
Mon, 9 Jul 2007 10:22:36 +0000 (10:22 +0000)
committerJan Hubicka <hubicka@gcc.gnu.org>
Mon, 9 Jul 2007 10:22:36 +0000 (10:22 +0000)
From-SVN: r126481

gcc/ChangeLog
gcc/cse.c

index a98964b9dc100e877f5911790360443aa7043412..daa2d947d7b7e7149aa7ff684b0c329c0d68bd05 100644 (file)
@@ -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.
index d79ad68ac7880cf52139f3a8341f36ecfc46a8d7..234bcc7bfe631a84e07d77263c8fa1b274b77e99 100644 (file)
--- 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);