Revert revision 155944 due to the broken testcase.
authorjingyu <jingyu@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 15 Jan 2010 21:38:20 +0000 (21:38 +0000)
committerjingyu <jingyu@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 15 Jan 2010 21:38:20 +0000 (21:38 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155946 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/combine.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr42691.c [deleted file]

index f1f6e5c..80151a7 100644 (file)
@@ -1,9 +1,3 @@
-2010-01-15  Jing Yu  <jingyu@google.com>
-
-       PR rtl-optimization/42691
-       * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
-       a pseudo to a constant and are merged, and adjust comments.
-
 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
 
        * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
index e5d4c5a..5ae557c 100644 (file)
@@ -2663,16 +2663,10 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
          i2dest = SET_DEST (temp);
          i2dest_killed = dead_or_set_p (i2, i2dest);
 
-         /* Replace the source in I2 with the new constant and make the
-            resulting insn the new pattern for I3.  Then skip to where we
-            validate the pattern.  Everything was set up above.  */
          SUBST (SET_SRC (temp),
                 immed_double_const (olo, ohi, GET_MODE (SET_DEST (temp))));
 
          newpat = PATTERN (i2);
-
-          /* The dest of I3 has been replaced with the dest of I2.  */
-          changed_i3_dest = 1;
          goto validate_replacement;
        }
     }
@@ -3044,6 +3038,8 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
        }
     }
 
+  /* We come here when we are replacing a destination in I2 with the
+     destination of I3.  */
  validate_replacement:
 
   /* Note which hard regs this insn has as inputs.  */
index 89469ad..990ea36 100644 (file)
@@ -1,8 +1,3 @@
-2010-01-15  Jing Yu  <jingyu@google.com>
-
-       PR rtl-optimization/42691
-       * gcc.c-torture/execute/pr42691.c: New.
-
 2010-01-15  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/42739
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr42691.c b/gcc/testsuite/gcc.c-torture/execute/pr42691.c
deleted file mode 100644 (file)
index 321ac1b..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-extern void abort (void);
-
-union _D_rep
-{
-  unsigned short rep[4];
-  double val;
-};
-
-int add(double* key, double* table)
-{
-  unsigned i = 0;
-  double* deletedEntry = 0;
-  while (1) {
-    double* entry = table + i;
-
-    if (*entry == *key)
-      break;
-
-    union _D_rep _D_inf = {{ 0, 0, 0, 0x7ff0 }};
-    if (*entry != _D_inf.val)
-      abort ();
-
-    union _D_rep _D_inf2 = {{ 0, 0, 0, 0x7ff0 }};
-    if (!_D_inf2.val)
-      deletedEntry = entry;
-
-    i++;
-  }
-  *deletedEntry = 0.0;
-  return 0;
-}
-
-int main ()
-{
-  union _D_rep infinit = {{ 0, 0, 0, 0x7ff0 }};
-  double table[2] = { infinit.val, 23 };
-  double key = 23;
-  int ret = add (&key, table);
-  return ret;
-}