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