https://gcc.gnu.org/g:340a9f871f02a23a4480a7b5f4eacadf689089e5

commit r15-9579-g340a9f871f02a23a4480a7b5f4eacadf689089e5
Author: Kyrylo Tkachov <ktkac...@nvidia.com>
Date:   Thu Apr 24 00:34:09 2025 -0700

    opts.cc Simplify handling of explicit -flto-partition= and 
-fipa-reorder-for-locality
    
    The handling of an explicit -flto-partition= and -fipa-reorder-for-locality
    should be simpler.  No need to have a new default option.  We can use 
opts_set
    to check if -flto-partition is explicitly set and use that information in 
the
    error handling.
    Remove -flto-partition=default and update accordingly.
    
    Bootstrapped and tested on aarch64-none-linux-gnu.
    
    Signed-off-by: Kyrylo Tkachov <ktkac...@nvidia.com>
    
    gcc/
    
            * common.opt (LTO_PARTITION_DEFAULT): Delete.
            (flto-partition=): Change default back to balanced.
            * flag-types.h (lto_partition_model): Remove LTO_PARTITION_DEFAULT.
            * opts.cc (validate_ipa_reorder_locality_lto_partition):
            Check opts_set->x_flag_lto_partition instead of 
LTO_PARTITION_DEFAULT.
            (finish_options): Remove handling of LTO_PARTITION_DEFAULT.
    
    gcc/testsuite/
    
            * gcc.dg/completion-2.c: Remove check for default.
    
    (cherry picked from commit 040f94d1f63c3607a2f3faf5c329c3b2b6bf7d1e)

Diff:
---
 gcc/common.opt                      |  5 +----
 gcc/flag-types.h                    |  3 +--
 gcc/opts.cc                         | 11 ++++-------
 gcc/testsuite/gcc.dg/completion-2.c |  1 -
 4 files changed, 6 insertions(+), 14 deletions(-)

diff --git a/gcc/common.opt b/gcc/common.opt
index 88d987e6ab14..e3fa0dacec4c 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -2278,9 +2278,6 @@ Number of cache entries in incremental LTO after which to 
prune old entries.
 Enum
 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown 
LTO partitioning model %qs)
 
-EnumValue
-Enum(lto_partition_model) String(default) Value(LTO_PARTITION_DEFAULT)
-
 EnumValue
 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
 
@@ -2300,7 +2297,7 @@ EnumValue
 Enum(lto_partition_model) String(cache) Value(LTO_PARTITION_CACHE)
 
 flto-partition=
-Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) 
Init(LTO_PARTITION_DEFAULT)
+Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) 
Init(LTO_PARTITION_BALANCED)
 Specify the algorithm to partition symbols and vars at linktime.
 
 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
diff --git a/gcc/flag-types.h b/gcc/flag-types.h
index db573768c23d..9a3cc4a2e165 100644
--- a/gcc/flag-types.h
+++ b/gcc/flag-types.h
@@ -404,8 +404,7 @@ enum lto_partition_model {
   LTO_PARTITION_BALANCED = 2,
   LTO_PARTITION_1TO1 = 3,
   LTO_PARTITION_MAX = 4,
-  LTO_PARTITION_CACHE = 5,
-  LTO_PARTITION_DEFAULT= 6
+  LTO_PARTITION_CACHE = 5
 };
 
 /* flag_lto_locality_cloning initialization values.  */
diff --git a/gcc/opts.cc b/gcc/opts.cc
index 5e7b77dab2fd..5480b9dff2ce 100644
--- a/gcc/opts.cc
+++ b/gcc/opts.cc
@@ -1037,17 +1037,16 @@ report_conflicting_sanitizer_options (struct 
gcc_options *opts, location_t loc,
     }
 }
 
-/* Validate from OPTS and OPTS_SET that when -fipa-reorder-for-locality is
+/* Validate from OPTS_SET that when -fipa-reorder-for-locality is
    enabled no explicit -flto-partition is also passed as the locality cloning
    pass uses its own partitioning scheme.  */
 
 static void
-validate_ipa_reorder_locality_lto_partition (struct gcc_options *opts,
-                                            struct gcc_options *opts_set)
+validate_ipa_reorder_locality_lto_partition (struct gcc_options *opts_set)
 {
   static bool validated_p = false;
 
-  if (opts->x_flag_lto_partition != LTO_PARTITION_DEFAULT)
+  if (opts_set->x_flag_lto_partition)
     {
       if (opts_set->x_flag_ipa_reorder_for_locality && !validated_p)
        error ("%<-fipa-reorder-for-locality%> is incompatible with"
@@ -1268,9 +1267,7 @@ finish_options (struct gcc_options *opts, struct 
gcc_options *opts_set,
   if (opts->x_flag_reorder_blocks_and_partition)
     SET_OPTION_IF_UNSET (opts, opts_set, flag_reorder_functions, 1);
 
-  validate_ipa_reorder_locality_lto_partition (opts, opts_set);
-  if (opts_set->x_flag_lto_partition != LTO_PARTITION_DEFAULT)
-    opts_set->x_flag_lto_partition = opts->x_flag_lto_partition = 
LTO_PARTITION_BALANCED;
+  validate_ipa_reorder_locality_lto_partition (opts_set);
 
   /* The -gsplit-dwarf option requires -ggnu-pubnames.  */
   if (opts->x_dwarf_split_debug_info)
diff --git a/gcc/testsuite/gcc.dg/completion-2.c 
b/gcc/testsuite/gcc.dg/completion-2.c
index 46c511c8c2f4..99e653122016 100644
--- a/gcc/testsuite/gcc.dg/completion-2.c
+++ b/gcc/testsuite/gcc.dg/completion-2.c
@@ -5,7 +5,6 @@
 -flto-partition=1to1
 -flto-partition=balanced
 -flto-partition=cache
--flto-partition=default
 -flto-partition=max
 -flto-partition=none
 -flto-partition=one

Reply via email to