From: Jan Hubicka <hubicka@ucw.cz>
To: gcc-patches@gcc.gnu.org
Subject: Add forgotten options to -fprofile-use
Date: Sun, 06 Jan 2019 16:47:00 -0000 [thread overview]
Message-ID: <20190106164744.4etcmssr3jg2opxc@kam.mff.cuni.cz> (raw)
Hi,
I have noticed that we now enabled more loop transformations at -O3 but
not for -fprofile-use. Like loop transforms we already have, they
should be enabled because with profile they should be almost consistent
win. I have checked that all the passes check profile except for loop
interchange which I guess is Ok since the code size should not increase
in general.
Bootstrapped/regtested x86_64-linux, comitted.
Honza
* 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.
Index: opts.c
===================================================================
--- opts.c (revision 267601)
+++ opts.c (working copy)
@@ -1708,10 +1708,18 @@ enable_fdo_optimizations (struct gcc_opt
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. */
Index: doc/invoke.texi
===================================================================
--- doc/invoke.texi (revision 267603)
+++ doc/invoke.texi (working copy)
@@ -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
next reply other threads:[~2019-01-06 16:47 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-06 16:47 Jan Hubicka [this message]
2019-01-07 16:21 ` Sandra Loosemore
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190106164744.4etcmssr3jg2opxc@kam.mff.cuni.cz \
--to=hubicka@ucw.cz \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).