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]>

Reply via email to