defaults.h (LOG2_BITS_PER_UNIT): Move from here...
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Wed, 27 Jul 2016 20:35:35 +0000 (20:35 +0000)
committerBernd Edlinger <edlinger@gcc.gnu.org>
Wed, 27 Jul 2016 20:35:35 +0000 (20:35 +0000)
2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
        * tree.h (LOG2_BITS_PER_UNIT): ...to here.
        (BITS_PER_UNIT_LOG): Remove.
        (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
        * expr.c (expand_assignment): Likewise.
        * stor-layout.c (initialize_sizetypes): Likewise.

c-family:
2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-common.c (check_user_alignment): Use LOG2_BITS_PER_UNIT instead of
        BITS_PER_UNIT_LOG.

From-SVN: r238800

gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/defaults.h
gcc/expr.c
gcc/stor-layout.c
gcc/tree.h

index 858228fbb69a2ef73e5b754f82c22f3b3e8c9d78..3289d0affa3e863fa3a7098523b1f9e16f68e4a3 100644 (file)
@@ -1,3 +1,12 @@
+2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+       * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
+       * tree.h (LOG2_BITS_PER_UNIT): ...to here.
+       (BITS_PER_UNIT_LOG): Remove.
+       (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
+       * expr.c (expand_assignment): Likewise.
+       * stor-layout.c (initialize_sizetypes): Likewise.
+
 2016-07-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        * config/rs6000/vector.md (vec_extract<mode>): Change the calling
index 72ccd035c99af19837eb40556513e0d9b2b7ba5a..34c65ecc7f8ecee22092070aeb849fca34cd765a 100644 (file)
@@ -1,3 +1,8 @@
+2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+       * c-common.c (check_user_alignment): Use LOG2_BITS_PER_UNIT instead of
+       BITS_PER_UNIT_LOG.
+
 2016-07-25  Jason Merrill  <jason@redhat.com>
 
        PR c++/65970
index 1c5974a8e9289c2d7c7736c0a7efdbbde82530f0..38a7b2e383dd55b137286d341459893a046f1dd5 100644 (file)
@@ -7679,7 +7679,7 @@ check_user_alignment (const_tree align, bool allow_zero)
       error ("requested alignment is not a positive power of 2");
       return -1;
     }
-  else if (i >= HOST_BITS_PER_INT - BITS_PER_UNIT_LOG)
+  else if (i >= HOST_BITS_PER_INT - LOG2_BITS_PER_UNIT)
     {
       error ("requested alignment is too large");
       return -1;
index 319a7dce6f5351af4cc08fc751c1325a8b4c2f2c..af8fe916be49e745c842d992a5af372c46ec2fe3 100644 (file)
@@ -491,14 +491,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    your target, you should override these values by defining the
    appropriate symbols in your tm.h file.  */
 
-#if BITS_PER_UNIT == 8
-#define LOG2_BITS_PER_UNIT 3
-#elif BITS_PER_UNIT == 16
-#define LOG2_BITS_PER_UNIT 4
-#else
-#error Unknown BITS_PER_UNIT
-#endif
-
 #ifndef BITS_PER_WORD
 #define BITS_PER_WORD (BITS_PER_UNIT * UNITS_PER_WORD)
 #endif
index 1cb233caf797cc3b5d03415477d83ca5c50dbf1d..46de35f25492a0a39d8f1263bebbf01f153e3b08 100644 (file)
@@ -4990,8 +4990,7 @@ expand_assignment (tree to, tree from, bool nontemporal)
       if (bitpos < 0)
        {
          gcc_assert (offset == NULL_TREE);
-         offset = size_int (bitpos >> (BITS_PER_UNIT == 8
-                                       ? 3 : exact_log2 (BITS_PER_UNIT)));
+         offset = size_int (bitpos >> LOG2_BITS_PER_UNIT);
          bitpos &= BITS_PER_UNIT - 1;
        }
 
index 4ada959a45a3f93917fe186cf4d7647854f76171..242e79b6d9db1565fe0012ab8836c948cb4f36ea 100644 (file)
@@ -2572,7 +2572,7 @@ initialize_sizetypes (void)
     }
 
   bprecision
-    = MIN (precision + BITS_PER_UNIT_LOG + 1, MAX_FIXED_MODE_SIZE);
+    = MIN (precision + LOG2_BITS_PER_UNIT + 1, MAX_FIXED_MODE_SIZE);
   bprecision
     = GET_MODE_PRECISION (smallest_mode_for_size (bprecision, MODE_INT));
   if (bprecision > HOST_BITS_PER_DOUBLE_INT)
index 14c8f7a59f4ac7f56f82e84c5a622d1c091c4cbe..fff65d6c80957758b5d15243d641652dce1236ec 100644 (file)
@@ -4235,6 +4235,8 @@ extern tree bit_position (const_tree);
 extern tree byte_position (const_tree);
 extern HOST_WIDE_INT int_byte_position (const_tree);
 
+/* Type for sizes of data-type.  */
+
 #define sizetype sizetype_tab[(int) stk_sizetype]
 #define bitsizetype sizetype_tab[(int) stk_bitsizetype]
 #define ssizetype sizetype_tab[(int) stk_ssizetype]
@@ -4244,12 +4246,15 @@ extern HOST_WIDE_INT int_byte_position (const_tree);
 #define bitsize_int(L) size_int_kind (L, stk_bitsizetype)
 #define sbitsize_int(L) size_int_kind (L, stk_sbitsizetype)
 
-/* Type for sizes of data-type.  */
+/* Log2 of BITS_PER_UNIT.  */
 
-#define BITS_PER_UNIT_LOG \
-  ((BITS_PER_UNIT > 1) + (BITS_PER_UNIT > 2) + (BITS_PER_UNIT > 4) \
-   + (BITS_PER_UNIT > 8) + (BITS_PER_UNIT > 16) + (BITS_PER_UNIT > 32) \
-   + (BITS_PER_UNIT > 64) + (BITS_PER_UNIT > 128) + (BITS_PER_UNIT > 256))
+#if BITS_PER_UNIT == 8
+#define LOG2_BITS_PER_UNIT 3
+#elif BITS_PER_UNIT == 16
+#define LOG2_BITS_PER_UNIT 4
+#else
+#error Unknown BITS_PER_UNIT
+#endif
 
 /* Concatenate two lists (chains of TREE_LIST nodes) X and Y
    by making the last node in X point to Y.
@@ -5400,8 +5405,8 @@ extern GTY(()) struct int_n_trees_t int_n_trees[NUM_INT_N_ENTS];
 
 inline HOST_WIDE_INT
 int_bit_position (const_tree field)
-{ 
-  return ((wi::to_offset (DECL_FIELD_OFFSET (field)) << BITS_PER_UNIT_LOG)
+{
+  return ((wi::to_offset (DECL_FIELD_OFFSET (field)) << LOG2_BITS_PER_UNIT)
          + wi::to_offset (DECL_FIELD_BIT_OFFSET (field))).to_shwi ();
 }