[9/9] Make bitsize_mode_for_mode return an opt_mode

Message ID 87pob6hep8.fsf@linaro.org
State New
Headers show
Series
  • Make more use of opt_mode
Related show

Commit Message

Richard Sandiford Sept. 4, 2017, 11:43 a.m.
2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* machmode.h (bitwise_mode_for_mode): Return opt_mode.
	* stor-layout.c (bitwise_mode_for_mode): Likewise.
	(bitwise_type_for_mode): Update accordingly.

Comments

Richard Biener Sept. 5, 2017, 11:39 a.m. | #1
On Mon, Sep 4, 2017 at 1:43 PM, Richard Sandiford
<richard.sandiford@linaro.org> wrote:
> 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>


Ok.

Richard.

> gcc/

>         * machmode.h (bitwise_mode_for_mode): Return opt_mode.

>         * stor-layout.c (bitwise_mode_for_mode): Likewise.

>         (bitwise_type_for_mode): Update accordingly.

>

> Index: gcc/machmode.h

> ===================================================================

> --- gcc/machmode.h      2017-09-04 12:18:55.821333642 +0100

> +++ gcc/machmode.h      2017-09-04 12:19:42.856108173 +0100

> @@ -694,7 +694,7 @@ smallest_int_mode_for_size (unsigned int

>  }

>

>  extern opt_scalar_int_mode int_mode_for_mode (machine_mode);

> -extern machine_mode bitwise_mode_for_mode (machine_mode);

> +extern opt_machine_mode bitwise_mode_for_mode (machine_mode);

>  extern opt_machine_mode mode_for_vector (scalar_mode, unsigned);

>  extern opt_machine_mode mode_for_int_vector (unsigned int, unsigned int);

>

> Index: gcc/stor-layout.c

> ===================================================================

> --- gcc/stor-layout.c   2017-09-04 12:19:01.144339518 +0100

> +++ gcc/stor-layout.c   2017-09-04 12:19:42.856108173 +0100

> @@ -404,10 +404,10 @@ int_mode_for_mode (machine_mode mode)

>      }

>  }

>

> -/* Find a mode that can be used for efficient bitwise operations on MODE.

> -   Return BLKmode if no such mode exists.  */

> +/* Find a mode that can be used for efficient bitwise operations on MODE,

> +   if one exists.  */

>

> -machine_mode

> +opt_machine_mode

>  bitwise_mode_for_mode (machine_mode mode)

>  {

>    /* Quick exit if we already have a suitable mode.  */

> @@ -445,7 +445,7 @@ bitwise_mode_for_mode (machine_mode mode

>      }

>

>    /* Otherwise fall back on integers while honoring MAX_FIXED_MODE_SIZE.  */

> -  return mode_for_size (bitsize, MODE_INT, true).else_blk ();

> +  return mode_for_size (bitsize, MODE_INT, true);

>  }

>

>  /* Find a type that can be used for efficient bitwise operations on MODE.

> @@ -454,8 +454,7 @@ bitwise_mode_for_mode (machine_mode mode

>  tree

>  bitwise_type_for_mode (machine_mode mode)

>  {

> -  mode = bitwise_mode_for_mode (mode);

> -  if (mode == BLKmode)

> +  if (!bitwise_mode_for_mode (mode).exists (&mode))

>      return NULL_TREE;

>

>    unsigned int inner_size = GET_MODE_UNIT_BITSIZE (mode);

Patch

Index: gcc/machmode.h
===================================================================
--- gcc/machmode.h	2017-09-04 12:18:55.821333642 +0100
+++ gcc/machmode.h	2017-09-04 12:19:42.856108173 +0100
@@ -694,7 +694,7 @@  smallest_int_mode_for_size (unsigned int
 }
 
 extern opt_scalar_int_mode int_mode_for_mode (machine_mode);
-extern machine_mode bitwise_mode_for_mode (machine_mode);
+extern opt_machine_mode bitwise_mode_for_mode (machine_mode);
 extern opt_machine_mode mode_for_vector (scalar_mode, unsigned);
 extern opt_machine_mode mode_for_int_vector (unsigned int, unsigned int);
 
Index: gcc/stor-layout.c
===================================================================
--- gcc/stor-layout.c	2017-09-04 12:19:01.144339518 +0100
+++ gcc/stor-layout.c	2017-09-04 12:19:42.856108173 +0100
@@ -404,10 +404,10 @@  int_mode_for_mode (machine_mode mode)
     }
 }
 
-/* Find a mode that can be used for efficient bitwise operations on MODE.
-   Return BLKmode if no such mode exists.  */
+/* Find a mode that can be used for efficient bitwise operations on MODE,
+   if one exists.  */
 
-machine_mode
+opt_machine_mode
 bitwise_mode_for_mode (machine_mode mode)
 {
   /* Quick exit if we already have a suitable mode.  */
@@ -445,7 +445,7 @@  bitwise_mode_for_mode (machine_mode mode
     }
 
   /* Otherwise fall back on integers while honoring MAX_FIXED_MODE_SIZE.  */
-  return mode_for_size (bitsize, MODE_INT, true).else_blk ();
+  return mode_for_size (bitsize, MODE_INT, true);
 }
 
 /* Find a type that can be used for efficient bitwise operations on MODE.
@@ -454,8 +454,7 @@  bitwise_mode_for_mode (machine_mode mode
 tree
 bitwise_type_for_mode (machine_mode mode)
 {
-  mode = bitwise_mode_for_mode (mode);
-  if (mode == BLKmode)
+  if (!bitwise_mode_for_mode (mode).exists (&mode))
     return NULL_TREE;
 
   unsigned int inner_size = GET_MODE_UNIT_BITSIZE (mode);