This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [07/77] Add scalar_float_mode


On 07/13/2017 02:40 AM, Richard Sandiford wrote:
> This patch adds a scalar_float_mode class, which wraps a mode enum
> that is known to satisfy SCALAR_FLOAT_MODE_P.  Things like "SFmode"
> now give a scalar_float_mode object instead of a machine_mode.
> This in turn needs a change to the real.h format_helper, so that
> it can accept both machine_modes and scalar_float_modes.
> 
> 2017-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
> 	    Alan Hayward  <alan.hayward@arm.com>
> 	    David Sherwood  <david.sherwood@arm.com>
> 
> gcc/
> 	* coretypes.h (scalar_float_mode): New type.
> 	* machmode.h (mode_traits::from_int): Use machine_mode if
> 	USE_ENUM_MODES is defined.
> 	(is_a): New function.
> 	(as_a): Likewise.
> 	(dyn_cast): Likewise.
> 	(scalar_float_mode): New class.
> 	(scalar_float_mode::includes_p): New function.
> 	(is_float_mode): Likewise.
> 	* gdbhooks.py (MachineModePrinter): New class.
> 	(build_pretty_printer): Use it for scalar_float_mode.
> 	* real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
> 	(format_helper::format_helper): Turn into a template.
> 	* genmodes.c (get_mode_class): New function.
> 	(emit_insn_modes_h): Give modes the class returned by get_mode_class,
> 	or machine_mode if none.
> 	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
> 	as_a <scalar_float_mode>.
> 	* dwarf2out.c (mem_loc_descriptor): Likewise.
> 	(insert_float): Likewise.
> 	(add_const_value_attribute): Likewise.
> 	* simplify-rtx.c (simplify_immed_subreg): Likewise.
> 	* optabs.c (expand_absneg_bit): Take a scalar_float_mode.
> 	(expand_unop): Update accordingly.
> 	(expand_abs_nojump): Likewise.
> 	(expand_copysign_absneg): Take a scalar_float_mode.
> 	(expand_copysign_bit): Likewise.
> 	(expand_copysign): Update accordingly.
> 
> gcc/ada/
> 	* gcc-interface/utils.c (gnat_type_for_mode): Use is_a
> 	<scalar_float_mode> instead of SCALAR_FLOAT_MODE_P.
> 
> gcc/go/
> 	* go-lang.c (go_langhook_type_for_mode): Use is_float_mode.
> 
OK.
jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]