https://gcc.gnu.org/g:8fc87ffab7fa2a5264160ad0c8420cd016a354a0
commit 8fc87ffab7fa2a5264160ad0c8420cd016a354a0 Author: Michael Meissner <[email protected]> Date: Mon Oct 20 19:42:58 2025 -0400 Update ChangeLog.* Diff: --- gcc/ChangeLog.meissner | 379 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 379 insertions(+) diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner index 0d82ea4ddd71..5bda63a8a6b2 100644 --- a/gcc/ChangeLog.meissner +++ b/gcc/ChangeLog.meissner @@ -1,3 +1,382 @@ +==================== Branch work223, patch #10 ==================== + +Use power7 CPU option for power7 support instead of -mpopcntd + +See https://gcc.gnu.org/pipermail/gcc-patches/2025-September/695920.html for +more detail about the motavation for this set of patches. + +This is the tenth patch out of ten that cleans up most of the power7 +support not to use -mpopcntd to indicate we are using power7. I +believe the -mpopcntd option should be deprecated for GCC 17, but +because it is a documented switch, I have left it in these sets of +patches. I have made -mpopcntd only restrict uses of the actual +popcntd instruction. + +I have bootstraped and ran the regression tests for these patches on +both little endian and big endian Power servers. Can I check these +patches into the trunk? + +2025-10-20 Michael Meissner <[email protected]> + +gcc/ + + * config/rs6000/dfp.h (cmp<mode>_internal1): Use power7 CPU option + support instead of -mpopcntd, except for population count instructions. + * config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported): + Likewise. + * config/rs6000/rs6000-string.cc (expand_block_compare_gpr): Likewise. + * config/rs6000/rs6000.cc (rs6000_hard_regno_mode_ok_uncached): + Likewise. + (rs6000_option_override_internal): Likewise. + * config/rs6000/rs6000.h (TARGET_LDBRX): Likewise. + (TARGET_FCFID): Likewise. + (TARGET_LFIWZX): Likewise. + (TARGET_FCFIDS): Likewise. + (TARGET_FCFIDU): Likewise. + (TARGET_FCFIDUS): Likewise. + (TARGET_FCTIDUZ): Likewise. + (TARGET_FCTIWUZ): Likewise. + (TARGET_EXTRA_BUILTINS): Likewise. + (TARGET_POWER7): New macro. + * config/rs6000/rs6000.md (isa attribute): Use power7 CPU option support + instead of -mpopcntd, except for population count instructions. + (lrint<mode>s): Likewise. + (lrint<mode>si_di): Likewise. + (cmpmemsi): Likewise. + (bpermd_<mode>): Likewise. + (addg6s): Likewise. + (cdtbcd): Likewise. + (cbcdtd): Likewise. + (div<div_extend>_<mode>): Likewise. + +==================== Branch work223, patch #9 ==================== + +Remove -mpower8-internal support. + +See https://gcc.gnu.org/pipermail/gcc-patches/2025-September/695920.html for +more detail about the motavation for this set of patches. + +This is the ninth patch out of ten that removes the internal +-mpower8-internal ISA option, and it changes to use the CPU option +support for testing power8 features. + +I have bootstraped and ran the regression tests for these patches on +both little endian and big endian Power servers. Can I check these +patches into the trunk? + +2025-10-20 Michael Meissner <[email protected]> + +gcc/ + + * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete + -mpower8-internal support in favor of using power8 CPU option. + (POWERPC_MASKS): Likewise. + * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise. + * config/rs6000/rs6000.h (TARGET_POWER8): New macro. + * config/rs6000/rs6000.opt (-mpower8-internal): Remove setting ISA bit. + +==================== Branch work223, patch #8 ==================== + +Remove internal -mpower9-misc support. + +See https://gcc.gnu.org/pipermail/gcc-patches/2025-September/695920.html for +more detail about the motavation for this set of patches. + +This is the eighth patch out of ten that removes the internal +-mpower9-misc ISA option, and it changes to use the CPU option support +for testing power9 features. + +I have bootstraped and ran the regression tests for these patches on +both little endian and big endian Power servers. Can I check these +patches into the trunk? + +2025-10-20 Michael Meissner <[email protected]> + +gcc/ + + * config/rs6000/dfp.h (dfptstsfi_<code>_<mode>): Change TARGET_P9_MISC + to TARGET_POWER9. + (dfp_sgnfcnc_<mode): Likewise. + * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Remove + OPTION_MASK_P9_MISC. + (POWERPC_MASKS): Likewise. + * config/rs6000/rs6000-string.cc (do_load_mask_compare): Change + TARGET_P9_MISC to TARGET_POWER9. + (do_overlap_load_compare): Likewise. + (expand_compare_loop): Likewise. + (expand_block_compare_gpr): Likewise. + (expand_block_compare): Likewise. + * config/rs6000/rs6000.md (rs6000_option_override_internal): Likewise. + (rs6000_opt_masks): Remove -mpower9-misc. + * config/rs6000/rs6000.h (TARGET_POWER9): New macro. + * config/rs6000/rs6000.md (rs6000_mffscrn): Change TARGET_P9_MISC to + TARGET_POWER9. + (rs6000_mffscrni): Likewise. + (rs6000_mffscdrn): Likewise. + (rs6000_set_fpscr_rn): Likewise. + (rs6000_set_fpscr_drn): Likewise. + (rs6000_mffsl): Likewise. + (darn_32_<mode>): Likewise. + (darn_64_<mode>): Likewise. + (darn_raw_<mode>): Likewise. + (@darn<mode>): Likewise. + (cmprb): Likewise. + (cmprb_internal): Likewise. + (setb_signed): Likewise. + (setb_unsigned): Likewise. + (cmprb2): Likewise. + (cmprb2_internal): Likewise. + (cmpeqb): Likewise. + (cmpeqb_internal): Likewise. + * config/rs6000/rs6000.opt (-mpower9-misc): Change to WarnRemoved. + +==================== Branch work223, patch #7 ==================== + +Remove internal -mpower10 support. + +See https://gcc.gnu.org/pipermail/gcc-patches/2025-September/695920.html for +more detail about the motavation for this set of patches. + +This is the seventh patch out of ten that removes the internal +-mpower10 ISA option, and it changes to use the CPU option support for +testing power10 features. Now, features that showed up in power10 like +PC-relative support are left as ISA features, since the user may wish +to disable use of PC-relative instructions. + +I have bootstraped and ran the regression tests for these patches on +both little endian and big endian Power servers. Can I check these +patches into the trunk? + +2025-10-20 Michael Meissner <[email protected]> + +gcc/ + + * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Drop -mpower10 + ISA option. + (POWERPC_MASKS): Likewise. + * config/rs6000/rs6000.cc (rs6000_opt_masks): Likewise. + * config/rs6000/rs6000.h (TARGET_POWER10): New macro. + * config/rs6000/rs6000.opt (-mpower10): Drop power11 from being an ISA + option. + +==================== Branch work223, patch #6 ==================== + +Remove internal -mpower11 support. + +See https://gcc.gnu.org/pipermail/gcc-patches/2025-September/695920.html for +more detail about the motavation for this set of patches. + +This is the sixth patch out of ten that removes the internal -mpower11 +ISA option, and it changes to use the CPU option support for testing +power11 features. + +I have bootstraped and ran the regression tests for these patches on +both little endian and big endian Power servers. Can I check these +patches into the trunk? + +2025-10-20 Michael Meissner <[email protected]> + +gcc/ + + * config/rs6000/rs6000-cpus.def (POWER11_MASKS_SERVER): Drop -mpower11 + ISA option. + (POWERPC_MASKS): Likewise. + * config/rs6000/rs6000.cc (rs6000_opt_masks): Likewise. + * config/rs6000/rs6000.h (TARGET_POWER11): New macro. + * config/rs6000/rs6000.opt (-mpower11): Drop power11 from being an ISA + option. + +==================== Branch work223, patch #5 ==================== + +Add -mcpu=future support. + +See https://gcc.gnu.org/pipermail/gcc-patches/2025-September/695920.html for +more detail about the motavation for this set of patches. + +This is the fifth patch out of ten tht adds the option -mcpu=future. +The processor type for scheduling is currently set to power11 instead +of making a new processor enumeration. This patch also adds two new +tests to see if -mcpu=future is supported. + +I have bootstraped and ran the regression tests for these patches on +both little endian and big endian Power servers. Can I check these +patches into the trunk? + +2025-10-20 Michael Meissner <[email protected]> + +gcc/ + + * config.gcc (powerpc*-*-*): Add support for --with-cpu=future. + * config/rs6000/aix71.h (ASM_CPU_SPEC): If -mcpu=future, pass -mfuture + to the assembler. + * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. + * config/rs6000/aix73.h (ASM_CPU_SPEC): Likewise. + * config/rs6000/rs6000.c.cc (rs6000_target_modify_macros): If + -mcpu=future define _ARCH_FUTURE. + * config/rs6000/rs6000-cpus.def (FUTURE_MASKS_SERVER): New macro. + (CPU_OPTION_FUTURE_MASK): Add support for -mcpu=future. + (CPU_OPTION_FUTURE_ALL_MASKS): Likewise. + (future cpu): Likewise. + * config/rs6000/rs6000-opts.h (PROCESSOR_FUTURE): New macro. + * config/rs6000/rs6000-tables.opt: Regenerate. + * config/rs6000/rs6000.cc (power10_cost): Update comment. + (rs6000_machine_from_flags): Add support for -mcpu=future. + (rs6000_cpu_opt_masks): Likewise. + * config/rs6000/rs6000.h (ASM_CPU_SPEC): If -mcpu=future, pass -mfuture + to the assembler. + (TARGET_FUTURE): New macro. + +gcc/testsuite/ + + * gcc.target/powerpc/future-1.c: New test. + * gcc.target/powerpc/future-2.c: Likewise. + +==================== Branch work223, patch #4 ==================== + +Move defining _ARCH_PWRx to use CPU options. + +See https://gcc.gnu.org/pipermail/gcc-patches/2025-September/695920.html for +more detail about the motavation for this set of patches. + +This is the fourth patch out of ten that changes the defines of the +various _ARCH_PPC<x> macros that have CPU options to use the CPU +options instead of ISA bits. + +I have bootstraped and ran the regression tests for these patches on +both little endian and big endian Power servers. Can I check these +patches into the trunk? + +2025-10-20 Michael Meissner <[email protected]> + +gcc/ + + * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use CPU + options to define _ARCH_PWR11, _ARCH_PWR11, _ARCH_PWR10, _ARCH_PWR9, + _ARCH_PWR8, _ARCH_PWR7, and _ARCH_PWR6. + +==================== Branch work223, patch #3==================== + +Move setting the assembler .machine directive to use CPU options. + +See https://gcc.gnu.org/pipermail/gcc-patches/2025-September/695920.html for +more detail about the motavation for this set of patches. + +This is the third patch out of ten that uses the new CPU option +framework to set the .machine assembler directive for the machines that +we have set up CPU options for. The other machines like the Power 750, +etc. will continue to use the ISA bits as before. + +I have bootstraped and ran the regression tests for these patches on +both little endian and big endian Power servers. Can I check these +patches into the trunk? + +2025-10-20 Michael Meissner <[email protected]> + +gcc/ + + * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Set the assembler + .machine name from CPU options for power11 through power6. + +==================== Branch work223, patch #2 ==================== + +Move clone attribute support to use CPU options. + +See https://gcc.gnu.org/pipermail/gcc-patches/2025-September/695920.html for +more detail about the motavation for this set of patches. + +This is second patch out of ten that uses the new CPU option framework +to support the target clone feature: + + __attribute__((__target_clones__=("cpu=power9,default"))) + +I have bootstraped and ran the regression tests for these patches on +both little endian and big endian Power servers. Can I check these +patches into the trunk? + +2025-10-20 Michael Meissner <[email protected]> + +gcc/ + + * config/rs6000/rs6000.cc (struct clone_map): Use CPU options instead of + ISA masks for setting up clone attributes. + (rs6000_clone_map): Likewise. + (rs6000_clone_priority): Likewise. + +==================== Branch work223, patch #1 ==================== + +Add cpu option flag bits + +See https://gcc.gnu.org/pipermail/gcc-patches/2025-September/695920.html for +more detail about the motavation for this set of patches. + +This is the first patch out of ten that provides the basic frame work +to add a CPU option field that can be set via -mcpu=<xxx>, and to pass +the CPU option field to helper functions much like the current ISA bits +are passed. This patch just provides the infrastructure to add this +CPU option support. Only power6 through power11 machines have the CPU +option set. + +I have bootstraped and ran the regression tests for these patches on +both little endian and big endian Power servers. Can I check these +patches into the trunk? + +2025-10-20 Michael Meissner <[email protected]> + +gcc/ + + * config/rs6000/aix71.h (RS6000_CPU_OPTION): Define and undefine macro. + * config/rs6000/aix72.h (RS6000_CPU_OPTION): Likewise. + * config/rs6000/aix73.h (RS6000_CPU_OPTION): Likewise. + * config/rs6000/default64.h (RS6000_CPU_OPTION): Likewise. + * config/rs6000/driver-rs6000.cc (RS6000_CPU_OPTION): Likewise. + * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Add CPU + options parameter. + (rs6000_cpu_cpp_builtins): Likewise. + * config/rs6000/rs6000-cpus.def (toplevel): Add comment describing ISA + mask bits and CPU option mask bits. + (CPU_OPTION_POWER6_MASK): New macro. + (CPU_OPTION_POWER7_MASK): Likewise. + (CPU_OPTION_POWER8_MASK): Likewise. + (CPU_OPTION_POWER9_MASK): Likewise. + (CPU_OPTION_POWER10_MASK): Likewise. + (CPU_OPTION_POWER11_MASK): Likewise. + (CPU_OPTION_POWER6_ALL_MASKS): Likewise. + (CPU_OPTION_POWER7_ALL_MASKS): Likewise. + (CPU_OPTION_POWER8_ALL_MASKS): Likewise. + (CPU_OPTION_POWER9_ALL_MASKS): Likewise. + (CPU_OPTION_POWER10_ALL_MASKS): Likewise. + (CPU_OPTION_POWER11_ALL_MASKS): Likewise. + (power6 cpu): Switch to use RS6000_CPU_OPTION in order to set the CPU + option mask bits. + (power6x cpu): Likewise. + (power7 cpu): Likewise. + (power8): Likewise. + (power9): Likewise. + (power10): Likewise. + (power11): Likewise. + (powerpc64le): Likewise. + * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros): Add CPU + option argument. + (rs6000_target_modify_macros_ptr): Likewise. + * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Likewise. + (rs6000_print_isa_options): Likewise. + (struct rs6000_ptt): Likewise. + (RS6000_CPU): Likewise. + (RS6000_CPU_OPTION): Likewise. + (DEBUG_FMT_WX): Likewise. + (rs6000_debug_reg_global): Likewise. + (rs6000_option_override_internal): Likewise. + (struct rs6000_cpu_opt_mask): Likewise. + (rs6000_cpu_opt_masks): Likewise. + (rs6000_pragma_target_parse): Likewise. + (rs6000_function_specific_save): Likewise. + (rs6000_function_specific_restore): Likewise. + (rs6000_function_specific_print): Likewise. + (rs6000_print_options_internal): Likewise. + * config/rs6000/rs6000.opt (rs6000_cpu_option_flags): New target + variable. + (x_rs6000_cpu_option_flags): Likewise. + ==================== Branch work223, baseline ==================== 2025-10-20 Michael Meissner <[email protected]>
