On Fri, Jan 12, 2018 at 11:22 AM, Segher Boessenkool <seg...@kernel.crashing.org> wrote: > -mstring is only enabled by default on 601, and with -Os on some > configurations. It is almost always slower (than not using it) and > does not very often lead to smaller code. > > This patch disables it. If a user uses -mstring he gets a warning > (but not with -mno-string). I left the target attribute in place, it > just doesn't do anything anymore. > > The patch also deletes a whole bunch of code. The 'N' and 'O' output > modifiers are now unused, but now is not the time to delete them. > > Tested on powerpc64-linux {-m32,-m64}. Is this okay for trunk? > > > Segher > > > 2018-01-12 Segher Boessenkool <seg...@kernel.crashing.org> > > * config/rs6000/predicates.md (load_multiple_operation): Delete. > (store_multiple_operation): Delete. > * config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING. > * config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete. > * config/rs6000/rs6000-string.c (expand_block_move): Delete everything > guarded by TARGET_STRING. > (rs6000_output_load_multiple): Delete. > * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete > OPTION_MASK_STRING / TARGET_STRING handling. > (print_operand) <'N', 'O'>: Add comment that these are unused now. > (const rs6000_opt_masks) <"string">: Change mask to 0. > * config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING. > (MASK_STRING): Delete. > * config/rs6000/rs6000.md (*mov<mode>_string): Delete TARGET_STRING > parts. Simplify. > (load_multiple): Delete. > (*ldmsi8): Delete. > (*ldmsi7): Delete. > (*ldmsi6): Delete. > (*ldmsi5): Delete. > (*ldmsi4): Delete. > (*ldmsi3): Delete. > (store_multiple): Delete. > (*stmsi8): Delete. > (*stmsi7): Delete. > (*stmsi6): Delete. > (*stmsi5): Delete. > (*stmsi4): Delete. > (*stmsi3): Delete. > (movmemsi_8reg): Delete. > (corresponding unnamed define_insn): Delete. > (movmemsi_6reg): Delete. > (corresponding unnamed define_insn): Delete. > (movmemsi_4reg): Delete. > (corresponding unnamed define_insn): Delete. > (movmemsi_2reg): Delete. > (corresponding unnamed define_insn): Delete. > (movmemsi_1reg): Delete. > (corresponding unnamed define_insn): Delete. > * config/rs6000/rs6000.opt (mno-string): New. > (mstring): Replace by deprecation warning stub. > * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring.
Okay. Thanks, David