Make more use of GET_MODE_UNIT_BITSIZE
authorRichard Sandiford <richard.sandiford@linaro.org>
Fri, 13 Oct 2017 09:53:00 +0000 (09:53 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Fri, 13 Oct 2017 09:53:00 +0000 (09:53 +0000)
This patch is like the previous GET_MODE_UNIT_SIZE one,
but for bit rather than byte sizes.

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

gcc/
* cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
(expand_debug_source_expr): Likewise.
* combine.c (combine_simplify_rtx): Likewise.
* cse.c (fold_rtx): Likewise.
* fwprop.c (canonicalize_address): Likewise.
* targhooks.c (default_shift_truncation_mask): Likewise.

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

gcc/ChangeLog
gcc/cfgexpand.c
gcc/combine.c
gcc/cse.c
gcc/fwprop.c
gcc/targhooks.c

index 8add08c4b23aa83329008f3dfe64fefd8150cd3e..0e29ae8a95d363c7e8e7b80f2a2d0e02e3ec0c09 100644 (file)
@@ -1,3 +1,14 @@
+2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+
+       * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
+       (expand_debug_source_expr): Likewise.
+       * combine.c (combine_simplify_rtx): Likewise.
+       * cse.c (fold_rtx): Likewise.
+       * fwprop.c (canonicalize_address): Likewise.
+       * targhooks.c (default_shift_truncation_mask): Likewise.
+
 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
            Alan Hayward  <alan.hayward@arm.com>
            David Sherwood  <david.sherwood@arm.com>
index bd3312eb3baa0a218b45852199e2108ab4c4df96..be93c5843e50c6157edd61437240c9f578152540 100644 (file)
@@ -4326,9 +4326,11 @@ expand_debug_expr (tree exp)
 
        if (FLOAT_MODE_P (mode) && FLOAT_MODE_P (inner_mode))
          {
-           if (GET_MODE_BITSIZE (mode) == GET_MODE_BITSIZE (inner_mode))
+           if (GET_MODE_UNIT_BITSIZE (mode)
+               == GET_MODE_UNIT_BITSIZE (inner_mode))
              op0 = simplify_gen_subreg (mode, op0, inner_mode, 0);
-           else if (GET_MODE_BITSIZE (mode) < GET_MODE_BITSIZE (inner_mode))
+           else if (GET_MODE_UNIT_BITSIZE (mode)
+                    < GET_MODE_UNIT_BITSIZE (inner_mode))
              op0 = simplify_gen_unary (FLOAT_TRUNCATE, mode, op0, inner_mode);
            else
              op0 = simplify_gen_unary (FLOAT_EXTEND, mode, op0, inner_mode);
@@ -5191,9 +5193,11 @@ expand_debug_source_expr (tree exp)
 
   if (FLOAT_MODE_P (mode) && FLOAT_MODE_P (inner_mode))
     {
-      if (GET_MODE_BITSIZE (mode) == GET_MODE_BITSIZE (inner_mode))
+      if (GET_MODE_UNIT_BITSIZE (mode)
+         == GET_MODE_UNIT_BITSIZE (inner_mode))
        op0 = simplify_gen_subreg (mode, op0, inner_mode, 0);
-      else if (GET_MODE_BITSIZE (mode) < GET_MODE_BITSIZE (inner_mode))
+      else if (GET_MODE_UNIT_BITSIZE (mode)
+              < GET_MODE_UNIT_BITSIZE (inner_mode))
        op0 = simplify_gen_unary (FLOAT_TRUNCATE, mode, op0, inner_mode);
       else
        op0 = simplify_gen_unary (FLOAT_EXTEND, mode, op0, inner_mode);
index 4d2f79b3d71f8be697467983884e1f1ff604c082..aa246e67babd1128b60fdad2449ef624a78e3d1c 100644 (file)
@@ -6304,7 +6304,8 @@ combine_simplify_rtx (rtx x, machine_mode op0_mode, int in_dest,
        SUBST (XEXP (x, 1),
               force_to_mode (XEXP (x, 1), GET_MODE (XEXP (x, 1)),
                              (HOST_WIDE_INT_1U
-                              << exact_log2 (GET_MODE_BITSIZE (GET_MODE (x))))
+                              << exact_log2 (GET_MODE_UNIT_BITSIZE
+                                             (GET_MODE (x))))
                              - 1,
                              0));
       break;
index 717aaf8779da00d7c5e15c22f162521457d2890b..25653ac77bb0d9b702f4235099b4411220371a23 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -3612,7 +3612,7 @@ fold_rtx (rtx x, rtx_insn *insn)
                {
                  if (SHIFT_COUNT_TRUNCATED)
                    canon_const_arg1 = GEN_INT (INTVAL (const_arg1)
-                                               & (GET_MODE_BITSIZE (mode)
+                                               & (GET_MODE_UNIT_BITSIZE (mode)
                                                   - 1));
                  else
                    break;
@@ -3661,7 +3661,8 @@ fold_rtx (rtx x, rtx_insn *insn)
                {
                  if (SHIFT_COUNT_TRUNCATED)
                    inner_const = GEN_INT (INTVAL (inner_const)
-                                          & (GET_MODE_BITSIZE (mode) - 1));
+                                          & (GET_MODE_UNIT_BITSIZE (mode)
+                                             - 1));
                  else
                    break;
                }
@@ -3691,7 +3692,7 @@ fold_rtx (rtx x, rtx_insn *insn)
                  /* As an exception, we can turn an ASHIFTRT of this
                     form into a shift of the number of bits - 1.  */
                  if (code == ASHIFTRT)
-                   new_const = GEN_INT (GET_MODE_BITSIZE (mode) - 1);
+                   new_const = GEN_INT (GET_MODE_UNIT_BITSIZE (mode) - 1);
                  else if (!side_effects_p (XEXP (y, 0)))
                    return CONST0_RTX (mode);
                  else
index ca997490cf164b25936e32324485d2b37d31e463..b77006b48019d87a229a80fff819e75338d27aa3 100644 (file)
@@ -357,8 +357,8 @@ canonicalize_address (rtx x)
       {
       case ASHIFT:
         if (CONST_INT_P (XEXP (x, 1))
-            && INTVAL (XEXP (x, 1)) < GET_MODE_BITSIZE (GET_MODE (x))
-            && INTVAL (XEXP (x, 1)) >= 0)
+           && INTVAL (XEXP (x, 1)) < GET_MODE_UNIT_BITSIZE (GET_MODE (x))
+           && INTVAL (XEXP (x, 1)) >= 0)
          {
            HOST_WIDE_INT shift = INTVAL (XEXP (x, 1));
            PUT_CODE (x, MULT);
index 8dbf8a149706b0a7042170868bd79b5da4586e2a..ae2595113f89120a694e0ebb06bcf9424412be2a 100644 (file)
@@ -245,7 +245,7 @@ default_unwind_word_mode (void)
 unsigned HOST_WIDE_INT
 default_shift_truncation_mask (machine_mode mode)
 {
-  return SHIFT_COUNT_TRUNCATED ? GET_MODE_BITSIZE (mode) - 1 : 0;
+  return SHIFT_COUNT_TRUNCATED ? GET_MODE_UNIT_BITSIZE (mode) - 1 : 0;
 }
 
 /* The default implementation of TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.  */