Hello!

Attached patch restores alpha bootstrap.

2012-03-31  Uros Bizjak  <ubiz...@gmail.com>

        Partially revert:
        2012-03-29  Richard Guenther  <rguent...@suse.de>

        * rtl.h (extended_count): Remove.
        * combine.c (extended_count): Remove.

Bootstrapped on alphaev68-pc-linux-gnu.

OK for mainline?

Uros.
Index: combine.c
===================================================================
--- combine.c   (revision 186039)
+++ combine.c   (working copy)
@@ -9674,6 +9674,31 @@
   return NULL;
 }
 
+/* Return the number of "extended" bits there are in X, when interpreted
+   as a quantity in MODE whose signedness is indicated by UNSIGNEDP.  For
+   unsigned quantities, this is the number of high-order zero bits.
+   For signed quantities, this is the number of copies of the sign bit
+   minus 1.  In both case, this function returns the number of "spare"
+   bits.  For example, if two quantities for which this function returns
+   at least 1 are added, the addition is known not to overflow.
+
+   This function will always return 0 unless called during combine, which
+   implies that it must be called from a define_split.  */
+
+unsigned int
+extended_count (const_rtx x, enum machine_mode mode, int unsignedp)
+{
+  if (nonzero_sign_valid == 0)
+    return 0;
+
+  return (unsignedp
+         ? (HWI_COMPUTABLE_MODE_P (mode)
+            ? (unsigned int) (GET_MODE_PRECISION (mode) - 1
+                              - floor_log2 (nonzero_bits (x, mode)))
+            : 0)
+         : num_sign_bit_copies (x, mode) - 1);
+}
+
 /* This function is called from `simplify_shift_const' to merge two
    outer operations.  Specifically, we have already found that we need
    to perform operation *POP0 with constant *PCONST0 at the outermost
Index: rtl.h
===================================================================
--- rtl.h       (revision 186039)
+++ rtl.h       (working copy)
@@ -2455,6 +2455,7 @@
                             const_rtx, unsigned int);
 
 /* In combine.c  */
+extern unsigned int extended_count (const_rtx, enum machine_mode, int);
 extern rtx remove_death (unsigned int, rtx);
 extern void dump_combine_stats (FILE *);
 extern void dump_combine_total_stats (FILE *);

Reply via email to