aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-07-02 13:48:07 +0200
committerRichard Biener <rguenther@suse.de>2021-07-06 11:56:47 +0200
commit9f489a5731f12b8e6b49994e8f61acb5d26f508e (patch)
treeb0ca01e2c53647b46722ca04c9676238130468a0 /gcc/opts.c
parentb019b28ebd65462a092c96d95e9e356c8bb39b78 (diff)
downloadgcc-9f489a5731f12b8e6b49994e8f61acb5d26f508e.zip
gcc-9f489a5731f12b8e6b49994e8f61acb5d26f508e.tar.gz
gcc-9f489a5731f12b8e6b49994e8f61acb5d26f508e.tar.bz2
add -fmove-loop-stores option to control GIMPLE loop store-motion
This adds the -fmove-loop-stores option, mainly as a way to disable the store-motion part of GIMPLE invariant motion (-ftree-loop-im) which is enabled by default. It might be sensible to turn off -fmove-loop-stores at -O1 since it can result in compile-time as well as memory usage issues but this patch tries to preserve existing behavior besides introducing the new option with the exception of -Og where I've disabled it. Controlling store-motion has been made easy by earlier refactoring for the invariant motion only use after loop interchange. 2021-07-02 Richard Biener <rguenther@suse.de> * doc/invoke.texi (fmove-loop-stores): Document. * common.opt (fmove-loop-stores): New option. * opts.c (default_options_table): Enable -fmove-loop-stores at -O1 but not -Og. * tree-ssa-loop-im.c (pass_lim::execute): Pass flag_move_loop_stores instead of true to loop_invariant_motion_in_fun.
Diffstat (limited to 'gcc/opts.c')
-rw-r--r--gcc/opts.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/opts.c b/gcc/opts.c
index f159bb3..25282f7 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -575,6 +575,7 @@ static const struct default_options default_options_table[] =
{ 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_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 },
{ OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fipa_modref, NULL, 1 },
{ OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_ftree_bit_ccp, NULL, 1 },