Disable -fbit-tests and -fjump-tables at -O0

gcc/ChangeLog:

	* common.opt: Enable -fbit-tests and -fjump-tables only at -O1.
	* opts.cc (default_options_table): Dito.
This commit is contained in:
Andi Kleen 2024-10-15 13:15:09 -07:00
parent 7211155732
commit 06bc3a734e
2 changed files with 4 additions and 2 deletions

View File

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

View File

@ -611,6 +611,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 },
@ -619,6 +620,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 },