[33/77] Add a NARROWEST_INT_MODE macro
authorRichard Sandiford <richard.sandiford@linaro.org>
Wed, 30 Aug 2017 11:13:02 +0000 (11:13 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 30 Aug 2017 11:13:02 +0000 (11:13 +0000)
This patch replaces uses of GET_CLASS_NARROWEST_MODE (MODE_INT) with a
new NARROWEST_INT_MODE macro, which has type scalar_int_mode.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* machmode.h (NARROWEST_INT_MODE): New macro.
* expr.c (alignment_for_piecewise_move): Use it instead of
GET_CLASS_NARROWEST_MODE (MODE_INT).
(push_block): Likewise.
* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
Likewise.
* tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.

gcc/ada/
* gcc-interface/decl.c (validate_size): Use NARROWEST_INT_MODE
instead of GET_CLASS_NARROWEST_MODE (MODE_INT).

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r251485

gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c
gcc/expr.c
gcc/machmode.h
gcc/stor-layout.c
gcc/tree-vrp.c

index 5beaf455fe7bef662c5dd44e03fd1366ee2de67e..526c57bb89276fa0f18361e99c3264e068c75b85 100644 (file)
@@ -1,3 +1,15 @@
+2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+
+       * machmode.h (NARROWEST_INT_MODE): New macro.
+       * expr.c (alignment_for_piecewise_move): Use it instead of
+       GET_CLASS_NARROWEST_MODE (MODE_INT).
+       (push_block): Likewise.
+       * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
+       Likewise.
+       * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
+
 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
            Alan Hayward  <alan.hayward@arm.com>
            David Sherwood  <david.sherwood@arm.com>
index fa3525cacaa587349bd4413de1b1c20d94af401f..fe93c05961db148b0b105d216b6a39eea4adcbda 100644 (file)
@@ -1,3 +1,10 @@
+2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+
+       * gcc-interface/decl.c (validate_size): Use NARROWEST_INT_MODE
+       instead of GET_CLASS_NARROWEST_MODE (MODE_INT).
+
 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
            Alan Hayward  <alan.hayward@arm.com>
            David Sherwood  <david.sherwood@arm.com>
index c80960f7be1bcac92bc0fef2838c8b3c729a0983..ae4c6ec27b1774035d22aa9d9190e8e6c7f0cd6c 100644 (file)
@@ -8574,7 +8574,7 @@ validate_size (Uint uint_size, tree gnu_type, Entity_Id gnat_object,
      by the smallest integral mode that's valid for pointers.  */
   if (TREE_CODE (gnu_type) == POINTER_TYPE || TYPE_IS_FAT_POINTER_P (gnu_type))
     {
-      machine_mode p_mode = GET_CLASS_NARROWEST_MODE (MODE_INT);
+      scalar_int_mode p_mode = NARROWEST_INT_MODE;
       while (!targetm.valid_pointer_mode (p_mode))
        p_mode = GET_MODE_WIDER_MODE (p_mode).require ();
       type_size = bitsize_int (GET_MODE_BITSIZE (p_mode));
index ea1a6d4a9cd00c94f01d1716f222266d48c6416f..433e05ba9f4da922745892bccd9fa4b615d725af 100644 (file)
@@ -707,7 +707,7 @@ alignment_for_piecewise_move (unsigned int max_pieces, unsigned int align)
     {
       machine_mode tmode, xmode;
 
-      xmode = GET_CLASS_NARROWEST_MODE (MODE_INT);
+      xmode = NARROWEST_INT_MODE;
       FOR_EACH_MODE_IN_CLASS (tmode, MODE_INT)
        {
          if (GET_MODE_SIZE (tmode) > max_pieces
@@ -3910,7 +3910,7 @@ push_block (rtx size, int extra, int below)
                             negate_rtx (Pmode, size));
     }
 
-  return memory_address (GET_CLASS_NARROWEST_MODE (MODE_INT), temp);
+  return memory_address (NARROWEST_INT_MODE, temp);
 }
 
 /* A utility routine that returns the base of an auto-inc memory, or NULL.  */
index 497b0fbde54e610afa29198e0266f01d7587baa4..a9fc93a8fd2d8467176d4d7c72d3c74bf9e5dc49 100644 (file)
@@ -655,6 +655,12 @@ extern const unsigned char class_narrowest_mode[MAX_MODE_CLASS];
 #define GET_CLASS_NARROWEST_MODE(CLASS) \
   ((machine_mode) class_narrowest_mode[CLASS])
 
+/* The narrowest full integer mode available on the target.  */
+
+#define NARROWEST_INT_MODE \
+  (scalar_int_mode \
+   (scalar_int_mode::from_int (class_narrowest_mode[MODE_INT])))
+
 /* Return the narrowest mode in T's class.  */
 
 template<typename T>
index c859c8b07dedca77101f01d1de9b6c5ac9264251..e447f4f9346dfd5101ea5bde3b92cb2848f88804 100644 (file)
@@ -2723,7 +2723,7 @@ bit_field_mode_iterator
                           HOST_WIDE_INT bitregion_start,
                           HOST_WIDE_INT bitregion_end,
                           unsigned int align, bool volatilep)
-: m_mode (GET_CLASS_NARROWEST_MODE (MODE_INT)), m_bitsize (bitsize),
+: m_mode (NARROWEST_INT_MODE), m_bitsize (bitsize),
   m_bitpos (bitpos), m_bitregion_start (bitregion_start),
   m_bitregion_end (bitregion_end), m_align (align),
   m_volatilep (volatilep), m_count (0)
index 4da6a2b3863114239e8bd5062db6c50229497ffa..dc5554d1ad86f5face6b13f0c575b38b626c635b 100644 (file)
@@ -10120,7 +10120,7 @@ simplify_float_conversion_using_ranges (gimple_stmt_iterator *gsi,
      integer mode available.  */
   else
     {
-      mode = GET_CLASS_NARROWEST_MODE (MODE_INT);
+      mode = NARROWEST_INT_MODE;
       for (;;)
        {
          /* If we cannot do a signed conversion to float from mode