diff options
author | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-10-01 06:40:01 +0000 |
---|---|---|
committer | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-10-01 06:40:01 +0000 |
commit | f870b2cbeeaf16cfd0d5f42eab554077dbd3bd78 (patch) | |
tree | 9c1dc13c05365ca690189af68f225e26c1906449 /gcc/doc | |
parent | e57ef194b2cbbc8f178bdb6259e3bf3d2d4512e3 (diff) | |
download | gcc-f870b2cbeeaf16cfd0d5f42eab554077dbd3bd78.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228319 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/invoke.texi | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index c19be78943a..ebfaaa132fa 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 |