[v2,1/3] Disable -fbit-tests and -fjump-tables at -O0
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gcc_build--master-arm |
success
|
Build passed
|
linaro-tcwg-bot/tcwg_gcc_check--master-arm |
success
|
Test passed
|
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 |
success
|
Build passed
|
linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 |
success
|
Test passed
|
Commit Message
From: Andi Kleen <ak@gcc.gnu.org>
gcc/ChangeLog:
* common.opt: Enable -fbit-tests and -fjump-tables only at -O1.
* opts.cc (default_options_table): Dito.
---
gcc/common.opt | 4 ++--
gcc/opts.cc | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
Comments
On Mon, Oct 28, 2024 at 9:58 PM Andi Kleen <ak@linux.intel.com> wrote:
>
> From: Andi Kleen <ak@gcc.gnu.org>
>
> gcc/ChangeLog:
OK.
Thanks,
Richard.
> * common.opt: Enable -fbit-tests and -fjump-tables only at -O1.
> * opts.cc (default_options_table): Dito.
> ---
> gcc/common.opt | 4 ++--
> gcc/opts.cc | 2 ++
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/gcc/common.opt b/gcc/common.opt
> index 12b25ff486de..70a22cdc71a4 100644
> --- a/gcc/common.opt
> +++ b/gcc/common.opt
> @@ -2189,11 +2189,11 @@ Common Var(flag_ivopts) Init(1) Optimization
> Optimize induction variables on trees.
>
> fjump-tables
> -Common Var(flag_jump_tables) Init(1) Optimization
> +Common Var(flag_jump_tables) Init(0) Optimization
> Use jump tables for sufficiently large switch statements.
>
> fbit-tests
> -Common Var(flag_bit_tests) Init(1) Optimization
> +Common Var(flag_bit_tests) Init(0) Optimization
> Use bit tests for sufficiently large switch statements.
>
> fkeep-inline-functions
> diff --git a/gcc/opts.cc b/gcc/opts.cc
> index acd53befdbfc..7adc495a7c2a 100644
> --- a/gcc/opts.cc
> +++ b/gcc/opts.cc
> @@ -610,6 +610,7 @@ static const struct default_options default_options_table[] =
> { OPT_LEVELS_1_PLUS, OPT_fvar_tracking, NULL, 1 },
>
> /* -O1 (and not -Og) optimizations. */
> + { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fbit_tests, NULL, 1 },
> { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fbranch_count_reg, NULL, 1 },
> #if DELAY_SLOTS
> { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fdelayed_branch, NULL, 1 },
> @@ -618,6 +619,7 @@ static const struct default_options default_options_table[] =
> { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fif_conversion, NULL, 1 },
> { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fif_conversion2, NULL, 1 },
> { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_finline_functions_called_once, NULL, 1 },
> + { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fjump_tables, NULL, 1 },
> { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fmove_loop_invariants, NULL, 1 },
> { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fmove_loop_stores, NULL, 1 },
> { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fssa_phiopt, NULL, 1 },
> --
> 2.46.2
>
@@ -2189,11 +2189,11 @@ Common Var(flag_ivopts) Init(1) Optimization
Optimize induction variables on trees.
fjump-tables
-Common Var(flag_jump_tables) Init(1) Optimization
+Common Var(flag_jump_tables) Init(0) Optimization
Use jump tables for sufficiently large switch statements.
fbit-tests
-Common Var(flag_bit_tests) Init(1) Optimization
+Common Var(flag_bit_tests) Init(0) Optimization
Use bit tests for sufficiently large switch statements.
fkeep-inline-functions
@@ -610,6 +610,7 @@ static const struct default_options default_options_table[] =
{ OPT_LEVELS_1_PLUS, OPT_fvar_tracking, NULL, 1 },
/* -O1 (and not -Og) optimizations. */
+ { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fbit_tests, NULL, 1 },
{ OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fbranch_count_reg, NULL, 1 },
#if DELAY_SLOTS
{ OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fdelayed_branch, NULL, 1 },
@@ -618,6 +619,7 @@ static const struct default_options default_options_table[] =
{ OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fif_conversion, NULL, 1 },
{ OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fif_conversion2, NULL, 1 },
{ OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_finline_functions_called_once, NULL, 1 },
+ { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fjump_tables, NULL, 1 },
{ OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fmove_loop_invariants, NULL, 1 },
{ OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fmove_loop_stores, NULL, 1 },
{ OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fssa_phiopt, NULL, 1 },