[64/77] Add a scalar_mode class
authorRichard Sandiford <richard.sandiford@linaro.org>
Wed, 30 Aug 2017 11:19:17 +0000 (11:19 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 30 Aug 2017 11:19:17 +0000 (11:19 +0000)
commitd21cefc26f716395b03e3c0d379ecac04656f963
tree23cc0255a69adb29141d859194421f1c78fc961d
parent90970acd061f18e5e97162a36b92555ad162ed34
[64/77] Add a scalar_mode class

This patch adds a scalar_mode class that can hold any scalar mode,
specifically:

  - scalar integers
  - scalar floating-point values
  - scalar fractional modes
  - scalar accumulator modes
  - pointer bounds modes

To start with this patch uses this type for GET_MODE_INNER.
Later patches add more uses.

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

gcc/
* coretypes.h (scalar_mode): New class.
* machmode.h (scalar_mode): Likewise.
(scalar_mode::includes_p): New function.
(mode_to_inner): Return a scalar_mode rather than a machine_mode.
* gdbhooks.py (build_pretty_printers): Handle scalar_mode.
* genmodes.c (get_mode_class): Handle remaining scalar modes.
* cfgexpand.c (expand_debug_expr): Use scalar_mode.
* expmed.c (store_bit_field_1): Likewise.
(extract_bit_field_1): Likewise.
* expr.c (write_complex_part): Likewise.
(read_complex_part): Likewise.
(emit_move_complex_push): Likewise.
(expand_expr_real_2): Likewise.
* function.c (assign_parm_setup_reg): Likewise.
(assign_parms_unsplit_complex): Likewise.
* optabs.c (expand_binop): Likewise.
* rtlanal.c (subreg_get_info): Likewise.
* simplify-rtx.c (simplify_immed_subreg): Likewise.
* varasm.c (output_constant_pool_2): Likewise.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r251515
13 files changed:
gcc/ChangeLog
gcc/cfgexpand.c
gcc/coretypes.h
gcc/expmed.c
gcc/expr.c
gcc/function.c
gcc/gdbhooks.py
gcc/genmodes.c
gcc/machmode.h
gcc/optabs.c
gcc/rtlanal.c
gcc/simplify-rtx.c
gcc/varasm.c