diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2019-01-06 17:44:51 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2019-01-06 16:44:51 +0000 |
commit | a9a32e564de826c3526f1a0626f8115588a5452b (patch) | |
tree | b3fb7c96f754c1d1b86df30fb3935ea9a0a6afb7 /gcc | |
parent | 13b1afe4defcc3eeaa50fe10eb2f2768e95696ec (diff) | |
download | gcc-a9a32e564de826c3526f1a0626f8115588a5452b.zip gcc-a9a32e564de826c3526f1a0626f8115588a5452b.tar.gz gcc-a9a32e564de826c3526f1a0626f8115588a5452b.tar.bz2 |
opts.c (enable_fdo_optimizations): Enable version-loops-for-strides...
* opts.c (enable_fdo_optimizations): Enable
version-loops-for-strides, loop-interchange, unrol-and-jam
and tree-loop-distribution.
* invoke.texi: Document newly enabled options.
From-SVN: r267611
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 8 | ||||
-rw-r--r-- | gcc/opts.c | 8 |
3 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a231aee..0ec2e34 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2019-01-05 Jan Hubicka <hubicka@ucw.cz> + * opts.c (enable_fdo_optimizations): Enable + version-loops-for-strides, loop-interchange, unrol-and-jam + and tree-loop-distribution. + * invoke.texi: Document newly enabled options. + +2019-01-05 Jan Hubicka <hubicka@ucw.cz> + * doc/invoke.texi (max-inline-insns-small): New parameters. * ipa-inline.c (want_early_inline_function_p): simplify. (want_inline_small_function_p): Fix pasto from previous patch; diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 0706db6..59a74af 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -9499,6 +9499,8 @@ DO I = 1, N D(I) = E(I) * F ENDDO @end smallexample +This flag is enabled by default at @option{-O3}. +It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}. @item -ftree-loop-distribute-patterns @opindex ftree-loop-distribute-patterns @@ -9524,6 +9526,8 @@ DO I = 1, N ENDDO @end smallexample and the initialization loop is transformed into a call to memset zero. +This flag is enabled by default at @option{-O3}. +It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}. @item -floop-interchange @opindex floop-interchange @@ -9544,12 +9548,14 @@ for (int i = 0; i < N; i++) c[i][j] = c[i][j] + a[i][k]*b[k][j]; @end smallexample This flag is enabled by default at @option{-O3}. +It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}. @item -floop-unroll-and-jam @opindex floop-unroll-and-jam Apply unroll and jam transformations on feasible loops. In a loop nest this unrolls the outer loop by some factor and fuses the resulting multiple inner loops. This flag is enabled by default at @option{-O3}. +It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}. @item -ftree-loop-im @opindex ftree-loop-im @@ -10804,6 +10810,8 @@ else This is particularly useful for assumed-shape arrays in Fortran where (for example) it allows better vectorization assuming contiguous accesses. +This flag is enabled by default at @option{-O3}. +It is also enabled by @option{-fprofile-use} and @option{-fauto-profile}. @item -ffunction-sections @itemx -fdata-sections @@ -1708,10 +1708,18 @@ enable_fdo_optimizations (struct gcc_options *opts, opts->x_flag_tree_loop_vectorize = value; if (!opts_set->x_flag_tree_slp_vectorize) opts->x_flag_tree_slp_vectorize = value; + if (!opts_set->x_flag_version_loops_for_strides) + opts->x_flag_version_loops_for_strides = value; if (!opts_set->x_flag_vect_cost_model) opts->x_flag_vect_cost_model = VECT_COST_MODEL_DYNAMIC; if (!opts_set->x_flag_tree_loop_distribute_patterns) opts->x_flag_tree_loop_distribute_patterns = value; + if (!opts_set->x_flag_loop_interchange) + opts->x_flag_loop_interchange = value; + if (!opts_set->x_flag_unroll_jam) + opts->x_flag_unroll_jam = value; + if (!opts_set->x_flag_tree_loop_distribution) + opts->x_flag_tree_loop_distribution = value; } /* -f{,no-}sanitize{,-recover}= suboptions. */ |