aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2019-01-06 17:44:51 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2019-01-06 16:44:51 +0000
commita9a32e564de826c3526f1a0626f8115588a5452b (patch)
treeb3fb7c96f754c1d1b86df30fb3935ea9a0a6afb7 /gcc
parent13b1afe4defcc3eeaa50fe10eb2f2768e95696ec (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/doc/invoke.texi8
-rw-r--r--gcc/opts.c8
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
diff --git a/gcc/opts.c b/gcc/opts.c
index a4be6ae..79b7279 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -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. */