This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: organization of optimization options in manual


On 01/14/2015 11:15 PM, Jeff Law wrote:
> On 01/14/15 23:12, Sandra Loosemore wrote:
>> I'll see if I can put together a
>> plan for splitting things up....  if there are too many leftovers maybe
>> others can help by suggesting different/additional categories.
> Sounds good.  I think just starting with the list & creating the buckets 
> with the list.  Then post here and we'll iterate and try to nail that 
> down before you start moving everything in the .texi file.

Here's my first cut at bucket-izing the options.  WDYT?  

General
  -O
  -O1
  -O2
  -O3
  -O0
  -Os
  -Ofast
  -Og
  -fexpensive-optimizations

Code motion and simplification
  -fcprop-registers
  -fcrossjumping
  -fcse-follow-jumps
  -fcse-skip-blocks
  -fdce
  -fdse
  -fforward-propagate
  -fgcse
  -fgcse-after-reload
  -fgcse-las
  -fgcse-lm
  -fgcse-sm
  -fhoist-adjacent-loads
  -frerun-cse-after-loop
  -fssa-phiopt
  -ftree-bit-ccp
  -ftree-builtin-call-dce
  -ftree-ccp
  -ftree-coalesce-inlined-vars
  -ftree-coalesce-vars
  -ftree-copy-prop
  -ftree-copyrename
  -ftree-dce
  -ftree-dominator-opts
  -ftree-dse
  -ftree-forwprop
  -ftree-fre
  -ftree-partial-pre
  -ftree-phiprop
  -ftree-pre
  -ftree-pta
  -ftree-reassoc
  -ftree-sink
  -ftree-slsr
  -ftree-sra
  -ftree-switch-conversion
  -ftree-tail-merge
  -ftree-ter
  -ftree-vrp

Loop optimizations
  -faggressive-loop-optimizations
  -fgraphite-identity
  -fivopts
  -floop-block
  -floop-interchange
  -floop-nest-optimize
  -floop-parallelize-all
  -floop-strip-mine
  -floop-unroll-and-jam
  -fmove-loop-invariants
  -fpeel-loops
  -fpredictive-commoning
  -fprefetch-loop-arrays
  -fsplit-ivs-in-unroller
  -ftree-ch
  -ftree-loop-distribute-patterns
  -ftree-loop-distribution
  -ftree-loop-if-convert
  -ftree-loop-if-convert-stores
  -ftree-loop-im
  -ftree-loop-ivcanon
  -ftree-loop-linear
  -ftree-loop-optimize
  -ftree-parallelize-loops=n
  -funroll-all-loops
  -funroll-loops
  -funsafe-loop-optimizations
  -funswitch-loops
  -fvariable-expansion-in-unroller

Vectorization options
  -fsimd-cost-model=@var{model}
  -ftree-loop-vectorize
  -ftree-slp-vectorize
  -ftree-vectorize
  -fvect-cost-model=@var{model}

Stack and call optimizations
  -fcombine-stack-adjustments
  -fconserve-stack
  -fno-defer-pop
  -fomit-frame-pointer
  -foptimize-sibling-calls
  -fshrink-wrap

Inlining
  -fearly-inlining
  -findirect-inlining
  -finline-functions
  -finline-functions-called-once
  -finline-limit=@var{n}
  -finline-small-functions
  -fno-inline
  -foptimize-strlen
  -fpartial-inlining

Branch and conditional optimizations
  -fbranch-target-load-optimize
  -fbranch-target-load-optimize2
  -fbtr-bb-exclusive
  -fif-conversion
  -fif-conversion2
  -fno-branch-count-reg
  -fno-guess-branch-probability
  -fthread-jumps

Code ordering and alignment
  -falign-functions
  -falign-functions=@var{n}
  -falign-jumps
  -falign-jumps=@var{n}
  -falign-labels
  -falign-labels=@var{n}
  -falign-loops
  -falign-loops=@var{n}
  -fno-toplevel-reorder
  -freorder-blocks
  -freorder-blocks-and-partition
  -freorder-functions
  -funit-at-a-time

Register usage
  -fcaller-saves
  -fipa-ra
  -fira-algorithm=@var{algorithm}
  -fira-hoist-pressure
  -fira-loop-pressure
  -fira-region=@var{region}
  -fira-verbose=@var{n}
  -flive-range-shrinkage
  -flra-remat
  -fno-ira-share-save-slots
  -fno-ira-share-spill-slots
  -frename-registers
  -fsplit-wide-types
  -fweb

C++ optimizations
  -fdeclone-ctor-dtor
  -fdevirtualize
  -fdevirtualize-at-ltrans
  -fdevirtualize-speculatively

Interprocedural
  -fipa-cp
  -fipa-cp-clone
  -fipa-icf
  -fipa-profile
  -fipa-pta
  -fipa-pure-const
  -fipa-reference
  -fipa-sra
  -fwhole-program

Scheduling
  -fdelayed-branch
  -fmodulo-sched
  -fmodulo-sched-allow-regmoves
  -fno-sched-interblock
  -fno-sched-spec
  -freschedule-modulo-scheduled-loops
  -fsched-critical-path-heuristic
  -fsched-dep-count-heuristic
  -fsched-group-heuristic
  -fsched-last-insn-heuristic
  -fsched-pressure
  -fsched-rank-heuristic
  -fsched-spec-insn-heuristic
  -fsched-spec-load
  -fsched-spec-load-dangerous
  -fsched-stalled-insns
  -fsched-stalled-insns-dep
  -fsched-stalled-insns-dep=@var{n}
  -fsched-stalled-insns=@var{n}
  -fsched2-use-superblocks
  -fschedule-fusion
  -fschedule-insns
  -fschedule-insns2
  -fsel-sched-pipelining
  -fsel-sched-pipelining-outer-loops
  -fselective-scheduling
  -fselective-scheduling2

LTO
  -ffat-lto-objects
  -flto-compression-level=@var{n}
  -flto-odr-type-merging
  -flto-partition=@var{alg}
  -flto-report
  -flto-report-wpa
  -flto[=@var{n}]
  -fuse-linker-plugin

Profile-guided optimizations
  -fauto-profile
  -fauto-profile=@var{path}
  -fbranch-probabilities
  -fprofile-correction
  -fprofile-dir=@var{path}
  -fprofile-reorder-functions
  -fprofile-use
  -fprofile-use=@var{path}
  -fprofile-values
  -fvpt

Floating-point
  -fassociative-math
  -fcx-fortran-rules
  -fcx-limited-range
  -fexcess-precision=@var{style}
  -ffast-math
  -ffinite-math-only
  -ffloat-store
  -fno-math-errno
  -fno-signed-zeros
  -fno-trapping-math
  -freciprocal-math
  -frounding-math
  -fsignaling-nans
  -fsingle-precision-constant
  -funsafe-math-optimizations

Miscellaneous
  [Some of these seem more appropriate for "Code Generation Conventions",
   but they're tied to some -O levels.  ???]
  -fauto-inc-dec
  -fcompare-elim
  -fdelete-null-pointer-checks
  -ffp-contract=@var{style}
  -fisolate-erroneous-paths-attribute
  -fisolate-erroneous-paths-dereference
  -fmerge-all-constants
  -fmerge-constants
  -fno-peephole
  -fno-peephole2
  -free
  -fsection-anchors
  -fsemantic-interposition
  -fstrict-aliasing
  -fstrict-overflow
  -ftracer

Optimization parameters
  --param @var{name}=@var{value}

Reclassify to "Code Generation Conventions"
  -fdata-sections
  -ffunction-sections
  -fkeep-inline-functions
  -fkeep-static-consts
  -fno-function-cse
  -fno-keep-inline-dllexport
  -fno-zero-initialized-in-bss
  
Reclassify as debug options
  -fcheck-data-deps  ["for debugging the data dependence analyzers"]

Reclassify to new section on instrumentation options
  -fprofile-generate
  -fprofile-generate=@var{path}
  -fstack-protector
  -fstack-protector-all
  -fstack-protector-strong
  -fstack-protector-explicit
  [-p, -pg, -fprofile-arcs, -fstack-check, -fsanitize, -finstrument-functions,
  -fvtable-verify, etc also go here]

-Sandra


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]