aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2015-10-01 08:40:01 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2015-10-01 08:40:01 +0200
commite01c66ca3083cf998d7e2f568ff6227f86727499 (patch)
tree9c1dc13c05365ca690189af68f225e26c1906449 /gcc
parent59faab7cc48681d8b2c995bdc466e1f3262839fa (diff)
downloadgcc-e01c66ca3083cf998d7e2f568ff6227f86727499.zip
gcc-e01c66ca3083cf998d7e2f568ff6227f86727499.tar.gz
gcc-e01c66ca3083cf998d7e2f568ff6227f86727499.tar.bz2
bb-reorder: Documentation updates
2015-09-23 Segher Boessenkool <segher@kernel.crashing.org> * doc/invoke.texi (Optimization Options): Add -freorder-blocks-algorithm=. (Optimize Options) <-O>: Add -freorder-blocks. <-O2>: Remove -freorder-blocks. Add -freorder-blocks-algorithm=stc. <-Os>: Add -freorder-blocks-algorithm=stc as not enabled. <-freorder-blocks>: Also enabled at levels -O and -Os. <-freorder-blocks-algorithm=>: Document new option. From-SVN: r228319
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/doc/invoke.texi23
2 files changed, 29 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8bfff2b..d50f991 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,15 @@
2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
+ * doc/invoke.texi (Optimization Options): Add
+ -freorder-blocks-algorithm=.
+ (Optimize Options) <-O>: Add -freorder-blocks.
+ <-O2>: Remove -freorder-blocks. Add -freorder-blocks-algorithm=stc.
+ <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
+ <-freorder-blocks>: Also enabled at levels -O and -Os.
+ <-freorder-blocks-algorithm=>: Document new option.
+
+2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
+
* bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
with flag_reorder_blocks_algorithm.
* common.opt (freorder-blocks-algorithm=): New flag.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index c19be78..ebfaaa1 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -430,6 +430,7 @@ Objective-C and Objective-C++ Dialects}.
-fprofile-use -fprofile-use=@var{path} -fprofile-values @gol
-fprofile-reorder-functions @gol
-freciprocal-math -free -frename-registers -freorder-blocks @gol
+-freorder-blocks-algorithm=@var{algorithm} @gol
-freorder-blocks-and-partition -freorder-functions @gol
-frerun-cse-after-loop -freschedule-modulo-scheduled-loops @gol
-frounding-math -fsched2-use-superblocks -fsched-pressure @gol
@@ -7689,6 +7690,7 @@ compilation time.
-fipa-reference @gol
-fmerge-constants @gol
-fmove-loop-invariants @gol
+-freorder-blocks @gol
-fshrink-wrap @gol
-fsplit-wide-types @gol
-ftree-bit-ccp @gol
@@ -7745,7 +7747,8 @@ also turns on the following optimization flags:
-foptimize-strlen @gol
-fpartial-inlining @gol
-fpeephole2 @gol
--freorder-blocks -freorder-blocks-and-partition -freorder-functions @gol
+-freorder-blocks-algorithm=stc @gol
+-freorder-blocks-and-partition -freorder-functions @gol
-frerun-cse-after-loop @gol
-fsched-interblock -fsched-spec @gol
-fschedule-insns -fschedule-insns2 @gol
@@ -7782,8 +7785,8 @@ optimizations designed to reduce code size.
@option{-Os} disables the following optimization flags:
@gccoptlist{-falign-functions -falign-jumps -falign-loops @gol
--falign-labels -freorder-blocks -freorder-blocks-and-partition @gol
--fprefetch-loop-arrays}
+-falign-labels -freorder-blocks -freorder-blocks-algorithm=stc @gol
+-freorder-blocks-and-partition -fprefetch-loop-arrays}
@item -Ofast
@opindex Ofast
@@ -9134,7 +9137,19 @@ The default is @option{-fguess-branch-probability} at levels
Reorder basic blocks in the compiled function in order to reduce number of
taken branches and improve code locality.
-Enabled at levels @option{-O2}, @option{-O3}.
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
+@item -freorder-blocks-algorithm=@var{algorithm}
+@opindex freorder-blocks-algorithm
+Use the specified algorithm for basic block reordering. The
+@var{algorithm} argument can be @samp{simple}, which does not increase
+code size (except sometimes due to secondary effects like alignment),
+or @samp{stc}, the ``software trace cache'' algorithm, which tries to
+put all often executed code together, minimizing the number of branches
+executed by making extra copies of code.
+
+The default is @samp{simple} at levels @option{-O}, @option{-Os}, and
+@samp{stc} at levels @option{-O2}, @option{-O3}.
@item -freorder-blocks-and-partition
@opindex freorder-blocks-and-partition