Hi, Sorry, I forgot to mention I tested this on:
aarch64 and aarch64_be - no regressions in gcc testsuite x86_64 - bootstrap build, no testsuite regressions arm-none-eabi - no regressions in gcc testsuite I will also make sure that I can do cross builds on a variety of different targets. Regards, David. > -----Original Message----- > From: David Sherwood [mailto:david.sherw...@arm.com] > Sent: 27 July 2015 11:25 > To: gcc-patches@gcc.gnu.org > Subject: [PATCH][1/N] Change GET_MODE_INNER to always return a non-void mode > > Hi, > > Part 1 of this change is a clean-up. I have changed calls to GET_MODE_INNER > (m) > so that it returns m in cases where there is no inner mode. This simplifies > some > of the calling code by removing the need to check for VOIDmode and allows > calling it unconditionally. I also removed element_precision () as it was only > called in one place and thought it neater to call GET_MODE_PRECISION > explicitly. > > Parts 2-4 will include further tidy-ups and optimisations based on [1/N]. > > Good to go? > > Regards, > David Sherwood. > > 2015-07-17 David Sherwood <david.sherw...@arm.com> > > gcc/ > * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call > GET_MODE_INNER unconditionally. > * config/spu/spu.c (arith_immediate_p): Likewise. > * config/i386/i386.c (ix86_build_signbit_mask): Likewise. New > variable. > * expmed.c (synth_mult): Remove check for VOIDmode result from > GET_MODE_INNER. > (expand_mult_const): Likewise. > * fold-const.c (): Replace call to element_precision with call to > GET_MODE_PRECISION. > * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with > m->name. > (emit_mode_inner): Likewise. > * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER > result check. > * machmode.h (GET_MODE_UNIT_SIZE): Simplify. > (GET_MODE_UNIT_PRECISION): Likewise. > * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally. > * simplify-rtx.c (simplify_immed_subreg): Likewise. > * stor-layout.c (bitwise_type_for_mode): Update assert. > (element_precision): Remove.