12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864 |
- ; Options for the language- and target-independent parts of the compiler.
- ; Copyright (C) 2003-2015 Free Software Foundation, Inc.
- ;
- ; This file is part of GCC.
- ;
- ; GCC is free software; you can redistribute it and/or modify it under
- ; the terms of the GNU General Public License as published by the Free
- ; Software Foundation; either version 3, or (at your option) any later
- ; version.
- ;
- ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
- ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
- ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- ; for more details.
- ;
- ; You should have received a copy of the GNU General Public License
- ; along with GCC; see the file COPYING3. If not see
- ; <http://www.gnu.org/licenses/>.
- ; See the GCC internals manual (options.texi) for a description of this file's format.
- ; Please try to keep this file in ASCII collating order.
- Variable
- int target_flags
- Variable
- int optimize
- Variable
- int optimize_size
- Variable
- int optimize_debug
- ; Not used directly to control optimizations, only to save -Ofast
- ; setting for "optimize" attributes.
- Variable
- int optimize_fast
- ; True if this is the lto front end. This is used to disable gimple
- ; generation and lowering passes that are normally run on the output
- ; of a front end. These passes must be bypassed for lto since they
- ; have already been done before the gimple was written.
- Variable
- bool in_lto_p = false
- ; 0 means straightforward implementation of complex divide acceptable.
- ; 1 means wide ranges of inputs must work for complex divide.
- ; 2 means C99-like requirements for complex multiply and divide.
- Variable
- int flag_complex_method = 1
- ; Nonzero if subexpressions must be evaluated from left-to-right.
- Variable
- int flag_evaluation_order = 0
- ; Language specific warning pass for unused results.
- Variable
- bool flag_warn_unused_result = false
- Variable
- int *param_values
- ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
- Variable
- int flag_generate_lto
- ; Nonzero if we should write GIMPLE bytecode for offload compilation.
- Variable
- int flag_generate_offload = 0
- ; True to warn about any objects definitions whose size is larger
- ; than N bytes. Also want about function definitions whose returned
- ; values are larger than N bytes, where N is 'larger_than_size'.
- Variable
- bool warn_larger_than
- Variable
- HOST_WIDE_INT larger_than_size
- ; True to warn about any function whose frame size is larger
- ; than N bytes.
- Variable
- bool warn_frame_larger_than
- Variable
- HOST_WIDE_INT frame_larger_than_size
- ; Nonzero means we should be saving declaration info into a .X file.
- Variable
- int flag_gen_aux_info = 0
- ; Nonzero if we are compiling code for a shared library, zero for
- ; executable.
- Variable
- int flag_shlib
- ; These two are really VEC(char_p,heap) *.
- Variable
- void *flag_instrument_functions_exclude_functions
- Variable
- void *flag_instrument_functions_exclude_files
- ; Generic structs (e.g. templates not explicitly specialized)
- ; may not have a compilation unit associated with them, and so
- ; may need to be treated differently from ordinary structs.
- ;
- ; Structs only handled by reference (indirectly), will also usually
- ; not need as much debugging information.
- Variable
- enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
- Variable
- enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
- ; True if we should exit after parsing options.
- Variable
- bool exit_after_options
- ; Type(s) of debugging information we are producing (if any). See
- ; flag-types.h for the definitions of the different possible types of
- ; debugging information.
- Variable
- enum debug_info_type write_symbols = NO_DEBUG
- ; Level of debugging information we are producing. See flag-types.h
- ; for the definitions of the different possible levels.
- Variable
- enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
- ; Nonzero means use GNU-only extensions in the generated symbolic
- ; debugging information. Currently, this only has an effect when
- ; write_symbols is set to DBX_DEBUG, XCOFF_DEBUG, or DWARF_DEBUG.
- Variable
- bool use_gnu_debug_info_extensions
- ; Original value of maximum field alignment in bytes, specified via
- ; -fpack-struct=<value>.
- Variable
- unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
- ; Type of stack check.
- Variable
- enum stack_check_type flag_stack_check = NO_STACK_CHECK
- ; True if stack usage information needs to be computed.
- Variable
- bool flag_stack_usage_info = false
- ; -dA causes debug commentary information to be produced in
- ; the generated assembly code (to make it more readable). This option
- ; is generally only of use to those who actually need to read the
- ; generated assembly code (perhaps while debugging the compiler itself).
- ; Currently, this switch is only used by dwarf2out.c; however, it is intended
- ; to be a catchall for printing debug information in the assembler file.
- Variable
- int flag_debug_asm
- ; -dP causes the rtl to be emitted as a comment in assembly.
- Variable
- int flag_dump_rtl_in_asm
- ; Whether -da was passed (used only in handle_common_deferred_options).
- Variable
- bool flag_dump_all_passed
- ; Other flags saying which kinds of debugging dump have been requested.
- Variable
- int rtl_dump_and_exit
- Variable
- int flag_print_asm_name
- ; Name of top-level original source file (what was input to cpp).
- ; This comes from the #-command at the beginning of the actual input.
- ; If there isn't any there, then this is the cc1 input file name.
- Variable
- const char *main_input_filename
- ; Pointer to base name in main_input_filename, with directories and a
- ; single final extension removed, and the length of this base
- ; name.
- Variable
- const char *main_input_basename
- Variable
- int main_input_baselength
- ; Which options have been printed by --help.
- Variable
- char *help_printed
- ; Which enums have been printed by --help. 0 = not printed, no
- ; relevant options seen, 1 = relevant option seen, not yet printed, 2
- ; = printed.
- Variable
- char *help_enum_printed
- ; The number of columns for --help output.
- Variable
- unsigned int help_columns
- ; Whether this options structure has been through finish_options
- Variable
- bool flag_opts_finished
- ; What the sanitizer should instrument
- Variable
- unsigned int flag_sanitize
- ; What sanitizers should recover from errors
- Variable
- unsigned int flag_sanitize_recover = SANITIZE_UNDEFINED | SANITIZE_NONDEFAULT | SANITIZE_KERNEL_ADDRESS
- ; Flag whether a prefix has been added to dump_base_name
- Variable
- bool dump_base_name_prefixed = false
- ###
- Driver
- -assemble
- Driver Alias(S)
- -compile
- Driver Alias(c)
- -coverage
- Driver Alias(coverage)
- -debug
- Common Alias(g)
- -dump
- Common Separate Alias(d)
- -dump=
- Common Joined Alias(d)
- -dumpbase
- Common Separate Alias(dumpbase)
- -dumpdir
- Common Separate Alias(dumpdir)
- -entry
- Driver Separate Alias(e)
- -entry=
- Driver Joined Alias(e)
- -extra-warnings
- Common Warning Alias(Wextra)
- -for-assembler
- Driver Separate Alias(Xassembler)
- -for-assembler=
- Driver JoinedOrMissing Alias(Xassembler)
- -for-linker
- Driver Separate Alias(Xlinker)
- -for-linker=
- Driver JoinedOrMissing Alias(Xlinker)
- -force-link
- Driver Separate Alias(u)
- -force-link=
- Driver Joined Alias(u)
- -help
- Common Driver Var(help_flag)
- Display this information
- -help=
- Common Driver Report Joined
- --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
- -language
- Driver Separate Alias(x)
- -language=
- Driver Joined Alias(x)
- -library-directory
- Driver Separate Alias(L)
- -library-directory=
- Driver Joined Alias(L)
- -no-canonical-prefixes
- Driver Alias(no-canonical-prefixes)
- -no-standard-libraries
- Driver Alias(nostdlib)
- -no-sysroot-suffix
- Driver Var(no_sysroot_suffix)
- -no-warnings
- Common Alias(w)
- -optimize
- Common Alias(O)
- -output
- Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
- -output=
- Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
- -pass-exit-codes
- Driver Alias(pass-exit-codes)
- -pedantic
- Common Alias(Wpedantic)
- -pedantic-errors
- Common Alias(pedantic-errors)
- -pie
- Driver Alias(pie)
- -pipe
- Driver Alias(pipe)
- -prefix
- Driver Separate Alias(B)
- -prefix=
- Driver JoinedOrMissing Alias(B)
- -preprocess
- Driver Alias(E)
- -print-file-name
- Driver Separate Alias(print-file-name=)
- -print-file-name=
- Driver JoinedOrMissing Alias(print-file-name=)
- -print-libgcc-file-name
- Driver Alias(print-libgcc-file-name)
- -print-multi-directory
- Driver Alias(print-multi-directory)
- -print-multi-lib
- Driver Alias(print-multi-lib)
- -print-multi-os-directory
- Driver Alias(print-multi-os-directory)
- -print-multiarch
- Driver Alias(print-multiarch)
- -print-prog-name
- Driver Separate Alias(print-prog-name=)
- -print-prog-name=
- Driver JoinedOrMissing Alias(print-prog-name=)
- -print-search-dirs
- Driver Alias(print-search-dirs)
- -print-sysroot
- Driver Alias(print-sysroot)
- -print-sysroot-headers-suffix
- Driver Alias(print-sysroot-headers-suffix)
- -profile
- Common Alias(p)
- -save-temps
- Driver Alias(save-temps)
- -shared
- Driver Alias(shared)
- -specs
- Driver Separate Alias(specs=)
- -specs=
- Driver Joined Alias(specs=)
- -static
- Driver Alias(static)
- -symbolic
- Driver Alias(symbolic)
- -target-help
- Common Driver
- Alias for --help=target
- -time
- Driver Alias(time)
- -verbose
- Driver Alias(v)
- ;; The driver used to convert options such as --help into forms such
- ;; as -fhelp; the following four entries are for compatibility with
- ;; any direct uses of those (undocumented) -f forms
- fhelp
- Common Driver Alias(-help)
- fhelp=
- Common Driver Joined Alias(-help=)
- ftarget-help
- Common Driver Alias(-target-help)
- fversion
- Common Driver Alias(-version)
- -param
- Common Separate
- --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
- -param=
- Common Joined Alias(-param)
- -sysroot
- Driver Separate Alias(-sysroot=)
- -sysroot=
- Driver JoinedOrMissing
- -version
- Common Driver
- B
- Driver Joined Separate
- E
- Driver
- L
- Driver Joined Separate
- N
- Driver
- O
- Common JoinedOrMissing Optimization
- -O<number> Set optimization level to <number>
- Os
- Common Optimization
- Optimize for space rather than speed
- Ofast
- Common Optimization
- Optimize for speed disregarding exact standards compliance
- Og
- Common Optimization
- Optimize for debugging experience rather than speed or size
- Q
- Driver
- Qn
- Driver Negative(Qy)
- Qy
- Driver Negative(Qn)
- R
- Driver Joined Separate
- S
- Driver
- T
- Driver Joined Separate
- Tbss
- Driver Separate
- Tbss=
- Driver Joined
- Tdata
- Driver Separate
- Tdata=
- Driver Joined
- Ttext
- Driver Separate
- Ttext=
- Driver Joined
- W
- Common RejectNegative Warning Alias(Wextra)
- This switch is deprecated; use -Wextra instead
- Wa,
- Driver JoinedOrMissing
- Wl,
- Driver JoinedOrMissing
- Wp,
- Driver JoinedOrMissing
- Waggregate-return
- Common Var(warn_aggregate_return) Warning
- Warn about returning structures, unions or arrays
- Waggressive-loop-optimizations
- Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
- Warn if a loop with constant number of iterations triggers undefined behavior
- Warray-bounds
- Common Var(warn_array_bounds) Warning
- Warn if an array is accessed out of bounds
- Warray-bounds=
- Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning
- Warn if an array is accessed out of bounds
- Wattributes
- Common Var(warn_attributes) Init(1) Warning
- Warn about inappropriate attribute usage
- Wcast-align
- Common Var(warn_cast_align) Warning
- Warn about pointer casts which increase alignment
- Wcpp
- Common Var(warn_cpp) Init(1) Warning
- Warn when a #warning directive is encountered
- Wdeprecated-declarations
- Common Var(warn_deprecated_decl) Init(1) Warning
- Warn about uses of __attribute__((deprecated)) declarations
- Wdisabled-optimization
- Common Var(warn_disabled_optimization) Warning
- Warn when an optimization pass is disabled
- Werror
- Common Var(warnings_are_errors)
- Treat all warnings as errors
- Werror=
- Common Joined
- Treat specified warning as error
- Wextra
- Common Var(extra_warnings) Warning
- Print extra (possibly unwanted) warnings
- Wfatal-errors
- Common Var(flag_fatal_errors)
- Exit on the first error occurred
- Wframe-larger-than=
- Common RejectNegative Joined UInteger
- -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
- Wfree-nonheap-object
- Common Var(warn_free_nonheap_object) Init(1) Warning
- Warn when attempting to free a non-heap object
- Winline
- Common Var(warn_inline) Warning
- Warn when an inlined function cannot be inlined
- Winvalid-memory-model
- Common Var(warn_invalid_memory_model) Init(1) Warning
- Warn when an atomic memory model parameter is known to be outside the valid range.
- Wlarger-than-
- Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
- Wlarger-than=
- Common RejectNegative Joined UInteger Warning
- -Wlarger-than=<number> Warn if an object is larger than <number> bytes
- Wunsafe-loop-optimizations
- Common Var(warn_unsafe_loop_optimizations) Warning
- Warn if the loop cannot be optimized due to nontrivial assumptions.
- Wmissing-noreturn
- Common Alias(Wsuggest-attribute=noreturn)
- Wodr
- Common Var(warn_odr_violations) Init(1) Warning
- Warn about some C++ One Definition Rule violations during link time optimization
- Woverflow
- Common Var(warn_overflow) Init(1) Warning
- Warn about overflow in arithmetic expressions
- Wpacked
- Common Var(warn_packed) Warning
- Warn when the packed attribute has no effect on struct layout
- Wpadded
- Common Var(warn_padded) Warning
- Warn when padding is required to align structure members
- Wpedantic
- Common Var(pedantic) Init(0) Warning
- Issue warnings needed for strict compliance to the standard
- Wreturn-local-addr
- Common Var(warn_return_local_addr) Init(1) Warning
- Warn about returning a pointer/reference to a local or temporary variable.
- Wshadow
- Common Var(warn_shadow) Warning
- Warn when one local variable shadows another
- Wstack-protector
- Common Var(warn_stack_protect) Warning
- Warn when not issuing stack smashing protection for some reason
- Wstack-usage=
- Common Joined RejectNegative UInteger Var(warn_stack_usage) Init(-1) Warning
- Warn if stack usage might be larger than specified amount
- Wstrict-aliasing
- Common Warning
- Warn about code which might break strict aliasing rules
- Wstrict-aliasing=
- Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
- Warn about code which might break strict aliasing rules
- Wstrict-overflow
- Common Warning
- Warn about optimizations that assume that signed overflow is undefined
- Wstrict-overflow=
- Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
- Warn about optimizations that assume that signed overflow is undefined
- Wsuggest-attribute=const
- Common Var(warn_suggest_attribute_const) Warning
- Warn about functions which might be candidates for __attribute__((const))
- Wsuggest-attribute=pure
- Common Var(warn_suggest_attribute_pure) Warning
- Warn about functions which might be candidates for __attribute__((pure))
- Wsuggest-attribute=noreturn
- Common Var(warn_suggest_attribute_noreturn) Warning
- Warn about functions which might be candidates for __attribute__((noreturn))
- Wsuggest-final-types
- Common Var(warn_suggest_final_types) Warning
- Warn about C++ polymorphic types where adding final keyword would improve code quality
- Wsuggest-final-methods
- Common Var(warn_suggest_final_methods) Warning
- Warn about C++ virtual methods where adding final keyword would improve code quality
- Wsystem-headers
- Common Var(warn_system_headers) Warning
- Do not suppress warnings from system headers
- Wtrampolines
- Common Var(warn_trampolines) Warning
- Warn whenever a trampoline is generated
- Wtype-limits
- Common Var(warn_type_limits) Warning EnabledBy(Wextra)
- Warn if a comparison is always true or always false due to the limited range of the data type
- Wuninitialized
- Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
- Warn about uninitialized automatic variables
- Wmaybe-uninitialized
- Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
- Warn about maybe uninitialized automatic variables
- Wunreachable-code
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- Wunused
- Common Var(warn_unused) Init(0) Warning
- Enable all -Wunused- warnings
- Wunused-but-set-parameter
- Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
- Warn when a function parameter is only set, otherwise unused
- Wunused-but-set-variable
- Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
- Warn when a variable is only set, otherwise unused
- Wunused-function
- Common Var(warn_unused_function) Warning EnabledBy(Wunused)
- Warn when a function is unused
- Wunused-label
- Common Var(warn_unused_label) Warning EnabledBy(Wunused)
- Warn when a label is unused
- Wunused-parameter
- Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
- Warn when a function parameter is unused
- Wunused-value
- Common Var(warn_unused_value) Warning EnabledBy(Wunused)
- Warn when an expression value is unused
- Wunused-variable
- Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
- Warn when a variable is unused
- Wcoverage-mismatch
- Common Var(warn_coverage_mismatch) Init(1) Warning
- Warn in case profiles in -fprofile-use do not match
- Wvector-operation-performance
- Common Var(warn_vector_operation_performance) Warning
- Warn when a vector operation is compiled outside the SIMD
- Xassembler
- Driver Separate
- Xlinker
- Driver Separate
- Xpreprocessor
- Driver Separate
- Z
- Driver
- aux-info
- Common Separate Var(aux_info_file_name)
- -aux-info <file> Emit declaration information into <file>
- aux-info=
- Common Joined Alias(aux-info)
- auxbase
- Common Separate RejectDriver Var(aux_base_name)
- auxbase-strip
- Common Separate RejectDriver
- coverage
- Driver
- c
- Driver
- d
- Common Joined
- -d<letters> Enable dumps from specific passes of the compiler
- dumpbase
- Common Separate Var(dump_base_name)
- -dumpbase <file> Set the file basename to be used for dumps
- dumpdir
- Common Separate Var(dump_dir_name)
- -dumpdir <dir> Set the directory name to be used for dumps
- dumpmachine
- Driver
- dumpspecs
- Driver
- dumpversion
- Driver
- e
- Driver Joined Separate
- ; This option has historically been passed down to the linker by an
- ; accident of a %{e*} spec, so ensure it continues to be passed down
- ; as a single option. The supported option for this purpose is
- ; -rdynamic. See PR 47390.
- export-dynamic
- Driver Undocumented
- ; The version of the C++ ABI in use. The following values are allowed:
- ;
- ; 0: The version of the ABI believed most conformant with the C++ ABI
- ; specification. This ABI may change as bugs are discovered and fixed.
- ; Therefore, 0 will not necessarily indicate the same ABI in different
- ; versions of G++.
- ;
- ; 1: The version of the ABI first used in G++ 3.2. No longer selectable.
- ;
- ; 2: The version of the ABI first used in G++ 3.4, and the default
- ; until GCC 4.9.
- ;
- ; 3: The version of the ABI that fixes the missing underscore
- ; in template non-type arguments of pointer type.
- ;
- ; 4: The version of the ABI that introduces unambiguous mangling of
- ; vector types. First selectable in G++ 4.5.
- ;
- ; 5: The version of the ABI that ignores attribute const/noreturn
- ; in function pointer mangling, and corrects mangling of decltype and
- ; function parameters used in other parameters and the return type.
- ; First selectable in G++ 4.6.
- ;
- ; 6: The version of the ABI that doesn't promote scoped enums to int and
- ; changes the mangling of template argument packs, const/static_cast,
- ; prefix ++ and --, and a class scope function used as a template
- ; argument.
- ; First selectable in G++ 4.7.
- ;
- ; 7: The version of the ABI that treats nullptr_t as a builtin type and
- ; corrects the mangling of lambdas in default argument scope.
- ; First selectable in G++ 4.8.
- ;
- ; 8: The version of the ABI that corrects the substitution behavior of
- ; function types with function-cv-qualifiers.
- ; First selectable in G++ 4.9 and default in G++ 5
- ;
- ; 9: The version of the ABI that corrects the alignment of nullptr_t.
- ; First selectable and default in G++ 5.2.
- ; (set in c_common_post_options).
- ;
- ; Additional positive integers will be assigned as new versions of
- ; the ABI become the default version of the ABI.
- fabi-version=
- Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
- The version of the C++ ABI in use
- faggressive-loop-optimizations
- Common Report Var(flag_aggressive_loop_optimizations) Optimization Init(1)
- Aggressively optimize loops using language constraints
- falign-functions
- Common Report Var(align_functions,0) Optimization UInteger
- Align the start of functions
- falign-functions=
- Common RejectNegative Joined UInteger Var(align_functions)
- falign-jumps
- Common Report Var(align_jumps,0) Optimization UInteger
- Align labels which are only reached by jumping
- falign-jumps=
- Common RejectNegative Joined UInteger Var(align_jumps)
- falign-labels
- Common Report Var(align_labels,0) Optimization UInteger
- Align all labels
- falign-labels=
- Common RejectNegative Joined UInteger Var(align_labels)
- falign-loops
- Common Report Var(align_loops,0) Optimization UInteger
- Align the start of loops
- falign-loops=
- Common RejectNegative Joined UInteger Var(align_loops)
- fargument-alias
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- fargument-noalias
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- fargument-noalias-global
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- fargument-noalias-anything
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- fsanitize=
- Common Driver Report Joined
- Select what to sanitize
- fasan-shadow-offset=
- Common Joined RejectNegative Var(common_deferred_options) Defer
- -fasan-shadow-offset=<number> Use custom shadow memory offset.
- fsanitize-recover=
- Common Report Joined
- After diagnosing undefined behavior attempt to continue execution
- fsanitize-recover
- Common Report
- This switch is deprecated; use -fsanitize-recover= instead
- fsanitize-undefined-trap-on-error
- Common Driver Report Var(flag_sanitize_undefined_trap_on_error) Init(0)
- Use trap instead of a library function for undefined behavior sanitization
- fasynchronous-unwind-tables
- Common Report Var(flag_asynchronous_unwind_tables) Optimization
- Generate unwind tables that are exact at each instruction boundary
- fauto-inc-dec
- Common Report Var(flag_auto_inc_dec) Init(1) Optimization
- Generate auto-inc/dec instructions
- fauto-profile
- Common Report Var(flag_auto_profile)
- Use sample profile information for call graph node weights. The default
- profile file is fbdata.afdo in 'pwd'.
- fauto-profile=
- Common Joined RejectNegative Var(auto_profile_file)
- Use sample profile information for call graph node weights. The profile
- file is specified in the argument.
- ; -fcheck-bounds causes gcc to generate array bounds checks.
- ; For C, C++ and ObjC: defaults off.
- ; For Java: defaults to on.
- ; For Fortran: defaults to off.
- fbounds-check
- Common Report Var(flag_bounds_check)
- Generate code to check bounds before indexing arrays
- fbranch-count-reg
- Common Report Var(flag_branch_on_count_reg) Optimization
- Replace add, compare, branch with branch on count register
- fbranch-probabilities
- Common Report Var(flag_branch_probabilities) Optimization
- Use profiling information for branch probabilities
- fbranch-target-load-optimize
- Common Report Var(flag_branch_target_load_optimize) Optimization
- Perform branch target load optimization before prologue / epilogue threading
- fbranch-target-load-optimize2
- Common Report Var(flag_branch_target_load_optimize2) Optimization
- Perform branch target load optimization after prologue / epilogue threading
- fbtr-bb-exclusive
- Common Report Var(flag_btr_bb_exclusive) Optimization
- Restrict target load migration not to re-use registers in any basic block
- fcall-saved-
- Common Joined RejectNegative Var(common_deferred_options) Defer
- -fcall-saved-<register> Mark <register> as being preserved across functions
- fcall-used-
- Common Joined RejectNegative Var(common_deferred_options) Defer
- -fcall-used-<register> Mark <register> as being corrupted by function calls
- ; Nonzero for -fcaller-saves: allocate values in regs that need to
- ; be saved across function calls, if that produces overall better code.
- ; Optional now, so people can test it.
- fcaller-saves
- Common Report Var(flag_caller_saves) Optimization
- Save registers around function calls
- fcheck-data-deps
- Common Report Var(flag_check_data_deps)
- Compare the results of several data dependence analyzers.
- fcheck-new
- Common Var(flag_check_new)
- Check the return value of new in C++
- fcombine-stack-adjustments
- Common Report Var(flag_combine_stack_adjustments) Optimization
- Looks for opportunities to reduce stack adjustments and stack references.
- fcommon
- Common Report Var(flag_no_common,0)
- Do not put uninitialized globals in the common section
- fcompare-debug
- Driver
- ; Converted by the driver to -fcompare-debug= options.
- fcompare-debug=
- Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
- -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
- fcompare-debug-second
- Common Driver RejectNegative Var(flag_compare_debug)
- Run only the second compilation of -fcompare-debug
- fcompare-elim
- Common Report Var(flag_compare_elim_after_reload) Optimization
- Perform comparison elimination after register allocation has finished
- fconserve-stack
- Common Var(flag_conserve_stack) Optimization
- Do not perform optimizations increasing noticeably stack usage
- fcprop-registers
- Common Report Var(flag_cprop_registers) Optimization
- Perform a register copy-propagation optimization pass
- fcrossjumping
- Common Report Var(flag_crossjumping) Optimization
- Perform cross-jumping optimization
- fcse-follow-jumps
- Common Report Var(flag_cse_follow_jumps) Optimization
- When running CSE, follow jumps to their targets
- fcse-skip-blocks
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- fcx-limited-range
- Common Report Var(flag_cx_limited_range) Optimization SetByCombined
- Omit range reduction step when performing complex division
- fcx-fortran-rules
- Common Report Var(flag_cx_fortran_rules) Optimization
- Complex multiplication and division follow Fortran rules
- fdata-sections
- Common Report Var(flag_data_sections)
- Place data items into their own section
- fdbg-cnt-list
- Common Report Var(common_deferred_options) Defer
- List all available debugging counters with their limits and counts.
- fdbg-cnt=
- Common RejectNegative Joined Var(common_deferred_options) Defer
- -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
- fdebug-prefix-map=
- Common Joined RejectNegative Var(common_deferred_options) Defer
- Map one directory name to another in debug information
- fdebug-types-section
- Common Report Var(flag_debug_types_section) Init(0)
- Output .debug_types section when using DWARF v4 debuginfo.
- ; Nonzero for -fdefer-pop: don't pop args after each function call
- ; instead save them up to pop many calls' args with one insns.
- fdefer-pop
- Common Report Var(flag_defer_pop) Optimization
- Defer popping functions args from stack until later
- fdelayed-branch
- Common Report Var(flag_delayed_branch) Optimization
- Attempt to fill delay slots of branch instructions
- fdelete-dead-exceptions
- Common Report Var(flag_delete_dead_exceptions) Init(0) Optimization
- Delete dead instructions that may throw exceptions
- fdelete-null-pointer-checks
- Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
- Delete useless null pointer checks
- fdevirtualize-at-ltrans
- Common Report Var(flag_ltrans_devirtualize)
- Stream extra data to support more aggressive devirtualization in LTO local transformation mode
- fdevirtualize-speculatively
- Common Report Var(flag_devirtualize_speculatively) Optimization
- Perform speculative devirtualization
- fdevirtualize
- Common Report Var(flag_devirtualize) Optimization
- Try to convert virtual calls to direct ones.
- fdiagnostics-show-location=
- Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
- -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
- ; Required for these enum values.
- SourceInclude
- pretty-print.h
- Enum
- Name(diagnostic_prefixing_rule) Type(int)
- EnumValue
- Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
- EnumValue
- Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
- fdiagnostics-show-caret
- Common Var(flag_diagnostics_show_caret) Init(1)
- Show the source line with a caret indicating the column
- fdiagnostics-color
- Common Alias(fdiagnostics-color=,always,never)
- ;
- fdiagnostics-color=
- Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
- -fdiagnostics-color=[never|always|auto] Colorize diagnostics
- ; Required for these enum values.
- SourceInclude
- diagnostic-color.h
- Enum
- Name(diagnostic_color_rule) Type(int)
- EnumValue
- Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
- EnumValue
- Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
- EnumValue
- Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
- fdiagnostics-show-option
- Common Var(flag_diagnostics_show_option) Init(1)
- Amend appropriate diagnostic messages with the command line option that controls them
- fdisable-
- Common Joined RejectNegative Var(common_deferred_options) Defer
- -fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass
- fenable-
- Common Joined RejectNegative Var(common_deferred_options) Defer
- -fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass
- fdump-
- Common Joined RejectNegative Var(common_deferred_options) Defer
- -fdump-<type> Dump various compiler internals to a file
- fdump-final-insns
- Driver RejectNegative
- fdump-final-insns=
- Common RejectNegative Joined Var(flag_dump_final_insns)
- -fdump-final-insns=filename Dump to filename the insns at the end of translation
- fdump-go-spec=
- Common RejectNegative Joined Var(flag_dump_go_spec)
- -fdump-go-spec=filename Write all declarations to file as Go code
- fdump-noaddr
- Common Report Var(flag_dump_noaddr)
- Suppress output of addresses in debugging dumps
- freport-bug
- Common Driver Var(flag_report_bug)
- Collect and dump debug information into temporary file if ICE in C/C++
- compiler occured.
- fdump-passes
- Common Var(flag_dump_passes) Init(0)
- Dump optimization passes
- fdump-unnumbered
- Common Report Var(flag_dump_unnumbered)
- Suppress output of instruction numbers, line number notes and addresses in debugging dumps
- fdump-unnumbered-links
- Common Report Var(flag_dump_unnumbered_links)
- Suppress output of previous and next insn numbers in debugging dumps
- fdwarf2-cfi-asm
- Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
- Enable CFI tables via GAS assembler directives.
- fearly-inlining
- Common Report Var(flag_early_inlining) Init(1) Optimization
- Perform early inlining
- feliminate-dwarf2-dups
- Common Report Var(flag_eliminate_dwarf2_dups)
- Perform DWARF2 duplicate elimination
- fipa-sra
- Common Report Var(flag_ipa_sra) Init(0) Optimization
- Perform interprocedural reduction of aggregates
- feliminate-unused-debug-symbols
- Common Report Var(flag_debug_only_used_symbols)
- Perform unused symbol elimination in debug info
- feliminate-unused-debug-types
- Common Report Var(flag_eliminate_unused_debug_types) Init(1)
- Perform unused type elimination in debug info
- femit-class-debug-always
- Common Report Var(flag_emit_class_debug_always) Init(0)
- Do not suppress C++ class debug information.
- fexceptions
- Common Report Var(flag_exceptions) Optimization
- Enable exception handling
- fexpensive-optimizations
- Common Report Var(flag_expensive_optimizations) Optimization
- Perform a number of minor, expensive optimizations
- fexcess-precision=
- Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT)
- -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
- Enum
- Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
- EnumValue
- Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
- EnumValue
- Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
- ffast-math
- Common
- ffat-lto-objects
- Common Var(flag_fat_lto_objects)
- Output lto objects containing both the intermediate language and binary output.
- ffinite-math-only
- Common Report Var(flag_finite_math_only) Optimization SetByCombined
- Assume no NaNs or infinities are generated
- ffixed-
- Common Joined RejectNegative Var(common_deferred_options) Defer
- -ffixed-<register> Mark <register> as being unavailable to the compiler
- ffloat-store
- Common Report Var(flag_float_store) Optimization
- Don't allocate floats and doubles in extended-precision registers
- fforce-addr
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- fforward-propagate
- Common Report Var(flag_forward_propagate) Optimization
- Perform a forward propagation pass on RTL
- ffp-contract=
- Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
- -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
- Enum
- Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
- EnumValue
- Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
- ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
- EnumValue
- Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
- EnumValue
- Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
- ; Nonzero means don't put addresses of constant functions in registers.
- ; Used for compiling the Unix kernel, where strange substitutions are
- ; done on the assembly output.
- ffunction-cse
- Common Report Var(flag_no_function_cse,0) Optimization
- Allow function addresses to be held in registers
- ffunction-sections
- Common Report Var(flag_function_sections)
- Place each function into its own section
- fgcse
- Common Report Var(flag_gcse) Optimization
- Perform global common subexpression elimination
- fgcse-lm
- Common Report Var(flag_gcse_lm) Init(1) Optimization
- Perform enhanced load motion during global common subexpression elimination
- fgcse-sm
- Common Report Var(flag_gcse_sm) Init(0) Optimization
- Perform store motion after global common subexpression elimination
- fgcse-las
- Common Report Var(flag_gcse_las) Init(0) Optimization
- Perform redundant load after store elimination in global common subexpression
- elimination
- fgcse-after-reload
- Common Report Var(flag_gcse_after_reload) Optimization
- Perform global common subexpression elimination after register allocation
- has finished
- ; This option is not documented yet as its semantics will change.
- fgraphite
- Common Report Var(flag_graphite) Optimization
- Enable in and out of Graphite representation
- fgraphite-identity
- Common Report Var(flag_graphite_identity) Optimization
- Enable Graphite Identity transformation
- fhoist-adjacent-loads
- Common Report Var(flag_hoist_adjacent_loads) Optimization
- Enable hoisting adjacent loads to encourage generating conditional move
- instructions
- floop-parallelize-all
- Common Report Var(flag_loop_parallelize_all) Optimization
- Mark all loops as parallel
- floop-strip-mine
- Common Report Var(flag_loop_strip_mine) Optimization
- Enable Loop Strip Mining transformation
- floop-interchange
- Common Report Var(flag_loop_interchange) Optimization
- Enable Loop Interchange transformation
- floop-block
- Common Report Var(flag_loop_block) Optimization
- Enable Loop Blocking transformation
- floop-unroll-and-jam
- Common Report Var(flag_loop_unroll_jam) Optimization
- Enable Loop Unroll Jam transformation
-
- fgnu-tm
- Common Report Var(flag_tm)
- Enable support for GNU transactional memory
- fgnu-unique
- Common Report Var(flag_gnu_unique) Init(1)
- Use STB_GNU_UNIQUE if supported by the assembler
- floop-flatten
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- floop-nest-optimize
- Common Report Var(flag_loop_optimize_isl) Optimization
- Enable the ISL based loop nest optimizer
- fstrict-volatile-bitfields
- Common Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization
- Force bitfield accesses to match their type width
- fguess-branch-probability
- Common Report Var(flag_guess_branch_prob) Optimization
- Enable guessing of branch probabilities
- ; Nonzero means ignore `#ident' directives. 0 means handle them.
- ; Generate position-independent code for executables if possible
- ; On SVR4 targets, it also controls whether or not to emit a
- ; string identifying the compiler.
- fident
- Common Report Var(flag_no_ident,0)
- Process #ident directives
- fif-conversion
- Common Report Var(flag_if_conversion) Optimization
- Perform conversion of conditional jumps to branchless equivalents
- fif-conversion2
- Common Report Var(flag_if_conversion2) Optimization
- Perform conversion of conditional jumps to conditional execution
- fstack-reuse=
- Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
- -fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
- Enum
- Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
- EnumValue
- Enum(stack_reuse_level) String(all) Value(SR_ALL)
- EnumValue
- Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
- EnumValue
- Enum(stack_reuse_level) String(none) Value(SR_NONE)
- ftree-loop-if-convert
- Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
- Convert conditional jumps in innermost loops to branchless equivalents
- ftree-loop-if-convert-stores
- Common Report Var(flag_tree_loop_if_convert_stores) Optimization
- Also if-convert conditional jumps containing memory writes
- ; -finhibit-size-directive inhibits output of .size for ELF.
- ; This is used only for compiling crtstuff.c,
- ; and it may be extended to other effects
- ; needed for crtstuff.c on other systems.
- finhibit-size-directive
- Common Report Var(flag_inhibit_size_directive)
- Do not generate .size directives
- findirect-inlining
- Common Report Var(flag_indirect_inlining) Optimization
- Perform indirect inlining
- ; General flag to enable inlining. Specifying -fno-inline will disable
- ; all inlining apart from always-inline functions.
- finline
- Common Report Var(flag_no_inline,0) Init(0) Optimization
- Enable inlining of function declared \"inline\", disabling disables all inlining
- finline-small-functions
- Common Report Var(flag_inline_small_functions) Optimization
- Integrate functions into their callers when code size is known not to grow
- finline-functions
- Common Report Var(flag_inline_functions) Optimization
- Integrate functions not declared \"inline\" into their callers when profitable
- finline-functions-called-once
- Common Report Var(flag_inline_functions_called_once) Optimization
- Integrate functions only required by their single caller
- finline-limit-
- Common RejectNegative Joined Alias(finline-limit=)
- finline-limit=
- Common RejectNegative Joined UInteger
- -finline-limit=<number> Limit the size of inlined functions to <number>
- finline-atomics
- Common Report Var(flag_inline_atomics) Init(1) Optimization
- Inline __atomic operations when a lock free instruction sequence is available.
- finstrument-functions
- Common Report Var(flag_instrument_function_entry_exit)
- Instrument function entry and exit with profiling calls
- finstrument-functions-exclude-function-list=
- Common RejectNegative Joined
- -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
- finstrument-functions-exclude-file-list=
- Common RejectNegative Joined
- -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
- fipa-cp
- Common Report Var(flag_ipa_cp) Optimization
- Perform interprocedural constant propagation
- fipa-cp-clone
- Common Report Var(flag_ipa_cp_clone) Optimization
- Perform cloning to make Interprocedural constant propagation stronger
- fipa-cp-alignment
- Common Report Var(flag_ipa_cp_alignment) Optimization
- Perform alignment discovery and propagation to make Interprocedural constant propagation stronger
- fipa-profile
- Common Report Var(flag_ipa_profile) Init(0) Optimization
- Perform interprocedural profile propagation
- fipa-pta
- Common Report Var(flag_ipa_pta) Init(0) Optimization
- Perform interprocedural points-to analysis
- fipa-pure-const
- Common Report Var(flag_ipa_pure_const) Init(0) Optimization
- Discover pure and const functions
- fipa-icf
- Common Report Var(flag_ipa_icf) Optimization
- Perform Identical Code Folding for functions and read-only variables
- fipa-icf-functions
- Common Report Var(flag_ipa_icf_functions) Optimization
- Perform Identical Code Folding for functions
- fipa-icf-variables
- Common Report Var(flag_ipa_icf_variables)
- Perform Identical Code Folding for variables
- fipa-reference
- Common Report Var(flag_ipa_reference) Init(0) Optimization
- Discover readonly and non addressable static variables
- fipa-matrix-reorg
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- fipa-struct-reorg
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- fira-algorithm=
- Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
- -fira-algorithm=[CB|priority] Set the used IRA algorithm
- Enum
- Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
- EnumValue
- Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
- EnumValue
- Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
- fira-region=
- Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization
- -fira-region=[one|all|mixed] Set regions for IRA
- Enum
- Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
- EnumValue
- Enum(ira_region) String(one) Value(IRA_REGION_ONE)
- EnumValue
- Enum(ira_region) String(all) Value(IRA_REGION_ALL)
- EnumValue
- Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
- fira-hoist-pressure
- Common Report Var(flag_ira_hoist_pressure) Init(1) Optimization
- Use IRA based register pressure calculation
- in RTL hoist optimizations.
- fira-loop-pressure
- Common Report Var(flag_ira_loop_pressure) Optimization
- Use IRA based register pressure calculation
- in RTL loop optimizations.
- fira-share-save-slots
- Common Report Var(flag_ira_share_save_slots) Init(1) Optimization
- Share slots for saving different hard registers.
- fira-share-spill-slots
- Common Report Var(flag_ira_share_spill_slots) Init(1) Optimization
- Share stack slots for spilled pseudo-registers.
- fira-verbose=
- Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
- -fira-verbose=<number> Control IRA's level of diagnostic messages.
- fivopts
- Common Report Var(flag_ivopts) Init(1) Optimization
- Optimize induction variables on trees
- fjump-tables
- Common Var(flag_jump_tables) Init(1) Optimization
- Use jump tables for sufficiently large switch statements
- fkeep-inline-functions
- Common Report Var(flag_keep_inline_functions)
- Generate code for functions even if they are fully inlined
- fkeep-static-consts
- Common Report Var(flag_keep_static_consts) Init(1)
- Emit static const variables even if they are not used
- fleading-underscore
- Common Report Var(flag_leading_underscore) Init(-1)
- Give external symbols a leading underscore
- floop-optimize
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- flra-remat
- Common Report Var(flag_lra_remat) Optimization
- Do CFG-sensitive rematerialization in LRA
- flto
- Common
- Enable link-time optimization.
- flto=
- Common RejectNegative Joined Var(flag_lto)
- Link-time optimization with number of parallel jobs or jobserver.
- Enum
- Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
- EnumValue
- Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
- EnumValue
- Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
- EnumValue
- Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
- EnumValue
- Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
- EnumValue
- Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
- flto-partition=
- Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
- Specify the algorithm to partition symbols and vars at linktime
- ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
- flto-compression-level=
- Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
- -flto-compression-level=<number> Use zlib compression level <number> for IL
- flto-odr-type-merging
- Common Report Var(flag_lto_odr_type_mering) Init(1)
- Merge C++ types using One Definition Rule
- flto-report
- Common Report Var(flag_lto_report) Init(0)
- Report various link-time optimization statistics
- flto-report-wpa
- Common Report Var(flag_lto_report_wpa) Init(0)
- Report various link-time optimization statistics for WPA only
- fmath-errno
- Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
- Set errno after built-in math functions
- fmax-errors=
- Common Joined RejectNegative UInteger Var(flag_max_errors)
- -fmax-errors=<number> Maximum number of errors to report
- fmem-report
- Common Report Var(mem_report)
- Report on permanent memory allocation
- fmem-report-wpa
- Common Report Var(mem_report_wpa)
- Report on permanent memory allocation in WPA only
- ; This will attempt to merge constant section constants, if 1 only
- ; string constants and constants from constant pool, if 2 also constant
- ; variables.
- fmerge-all-constants
- Common Report Var(flag_merge_constants,2) Init(1)
- Attempt to merge identical constants and constant variables
- fmerge-constants
- Common Report Var(flag_merge_constants,1)
- Attempt to merge identical constants across compilation units
- fmerge-debug-strings
- Common Report Var(flag_merge_debug_strings) Init(1)
- Attempt to merge identical debug strings across compilation units
- fmessage-length=
- Common RejectNegative Joined UInteger
- -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
- fmodulo-sched
- Common Report Var(flag_modulo_sched) Optimization
- Perform SMS based modulo scheduling before the first scheduling pass
- fmodulo-sched-allow-regmoves
- Common Report Var(flag_modulo_sched_allow_regmoves) Optimization
- Perform SMS based modulo scheduling with register moves allowed
- fmove-loop-invariants
- Common Report Var(flag_move_loop_invariants) Optimization
- Move loop invariant computations out of loops
- fdce
- Common Var(flag_dce) Init(1) Optimization
- Use the RTL dead code elimination pass
- fdse
- Common Var(flag_dse) Init(1) Optimization
- Use the RTL dead store elimination pass
- freschedule-modulo-scheduled-loops
- Common Report Var(flag_resched_modulo_sched) Optimization
- Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
- fnon-call-exceptions
- Common Report Var(flag_non_call_exceptions) Optimization
- Support synchronous non-call exceptions
- foffload=
- Common Driver Joined MissingArgError(options or targets missing after %qs)
- -foffload=<targets>=<options> Specify offloading targets and options for them
- foffload-abi=
- Common Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET)
- -foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler
- Enum
- Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
- EnumValue
- Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
- EnumValue
- Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
- fomit-frame-pointer
- Common Report Var(flag_omit_frame_pointer) Optimization
- When possible do not generate stack frames
- fopt-info
- Common Report Var(flag_opt_info) Optimization
- Enable all optimization info dumps on stderr
- fopt-info-
- Common Joined RejectNegative Var(common_deferred_options) Defer
- -fopt-info[-<type>=filename] Dump compiler optimization details
- foptimize-register-move
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- foptimize-sibling-calls
- Common Report Var(flag_optimize_sibling_calls) Optimization
- Optimize sibling and tail recursive calls
- fpartial-inlining
- Common Report Var(flag_partial_inlining) Optimization
- Perform partial inlining
- fpre-ipa-mem-report
- Common Report Var(pre_ipa_mem_report)
- Report on memory allocation before interprocedural optimization
- fpost-ipa-mem-report
- Common Report Var(post_ipa_mem_report)
- Report on memory allocation before interprocedural optimization
- fpack-struct
- Common Report Var(flag_pack_struct) Optimization
- Pack structure members together without holes
- fpack-struct=
- Common RejectNegative Joined UInteger Optimization
- -fpack-struct=<number> Set initial maximum structure member alignment
- fpcc-struct-return
- Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
- Return small aggregates in memory, not registers
- fpeel-loops
- Common Report Var(flag_peel_loops) Optimization
- Perform loop peeling
- fpeephole
- Common Report Var(flag_no_peephole,0) Optimization
- Enable machine specific peephole optimizations
- fpeephole2
- Common Report Var(flag_peephole2) Optimization
- Enable an RTL peephole pass before sched2
- fPIC
- Common Report Var(flag_pic,2) Negative(fPIE)
- Generate position-independent code if possible (large mode)
- fPIE
- Common Report Var(flag_pie,2) Negative(fpic)
- Generate position-independent code for executables if possible (large mode)
- fpic
- Common Report Var(flag_pic,1) Negative(fpie)
- Generate position-independent code if possible (small mode)
- fpie
- Common Report Var(flag_pie,1) Negative(fPIC)
- Generate position-independent code for executables if possible (small mode)
- fplugin=
- Common Joined RejectNegative Var(common_deferred_options) Defer
- Specify a plugin to load
- fplugin-arg-
- Common Joined RejectNegative Var(common_deferred_options) Defer
- -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
- fpredictive-commoning
- Common Report Var(flag_predictive_commoning) Optimization
- Run predictive commoning optimization.
- fprefetch-loop-arrays
- Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
- Generate prefetch instructions, if available, for arrays in loops
- fprofile
- Common Report Var(profile_flag)
- Enable basic program profiling code
- fprofile-arcs
- Common Report Var(profile_arc_flag)
- Insert arc-based program profiling code
- fprofile-dir=
- Common Joined RejectNegative Var(profile_data_prefix)
- Set the top-level directory for storing the profile data.
- The default is 'pwd'.
- fprofile-correction
- Common Report Var(flag_profile_correction)
- Enable correction of flow inconsistent profile data input
- fprofile-generate
- Common
- Enable common options for generating profile info for profile feedback directed optimizations
- fprofile-generate=
- Common Joined RejectNegative
- Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
- fprofile-use
- Common Var(flag_profile_use)
- Enable common options for performing profile feedback directed optimizations
- fprofile-use=
- Common Joined RejectNegative
- Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
- fprofile-values
- Common Report Var(flag_profile_values)
- Insert code to profile values of expressions
- fprofile-report
- Common Report Var(profile_report)
- Report on consistency of profile
- fprofile-reorder-functions
- Common Report Var(flag_profile_reorder_functions)
- Enable function reordering that improves code placement
- frandom-seed
- Common Var(common_deferred_options) Defer
- frandom-seed=
- Common Joined RejectNegative Var(common_deferred_options) Defer
- -frandom-seed=<number> Make compile reproducible using <number>
- ; This switch causes the command line that was used to create an
- ; object file to be recorded into the object file. The exact format
- ; of this recording is target and binary file format dependent.
- ; It is related to the -fverbose-asm switch, but that switch only
- ; records information in the assembler output file as comments, so
- ; they never reach the object file.
- frecord-gcc-switches
- Common Report Var(flag_record_gcc_switches)
- Record gcc command line switches in the object file.
- freg-struct-return
- Common Report Var(flag_pcc_struct_return,0) Optimization
- Return small aggregates in registers
- fregmove
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- flifetime-dse
- Common Report Var(flag_lifetime_dse) Init(1) Optimization
- Tell DSE that the storage for a C++ object is dead when the constructor
- starts and when the destructor finishes.
- flive-range-shrinkage
- Common Report Var(flag_live_range_shrinkage) Init(0) Optimization
- Relief of register pressure through live range shrinkage
- frename-registers
- Common Report Var(flag_rename_registers) Init(2) Optimization
- Perform a register renaming optimization pass
- fschedule-fusion
- Common Report Var(flag_schedule_fusion) Init(2) Optimization
- Perform a target dependent instruction fusion optimization pass
- freorder-blocks
- Common Report Var(flag_reorder_blocks) Optimization
- Reorder basic blocks to improve code placement
- freorder-blocks-and-partition
- Common Report Var(flag_reorder_blocks_and_partition) Optimization
- Reorder basic blocks and partition into hot and cold sections
- freorder-functions
- Common Report Var(flag_reorder_functions) Optimization
- Reorder functions to improve code placement
- frerun-cse-after-loop
- Common Report Var(flag_rerun_cse_after_loop) Optimization
- Add a common subexpression elimination pass after loop optimizations
- frerun-loop-opt
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- frounding-math
- Common Report Var(flag_rounding_math) Optimization SetByCombined
- Disable optimizations that assume default FP rounding behavior
- fsched-interblock
- Common Report Var(flag_schedule_interblock) Init(1) Optimization
- Enable scheduling across basic blocks
- fsched-pressure
- Common Report Var(flag_sched_pressure) Init(0) Optimization
- Enable register pressure sensitive insn scheduling
- fsched-spec
- Common Report Var(flag_schedule_speculative) Init(1) Optimization
- Allow speculative motion of non-loads
- fsched-spec-load
- Common Report Var(flag_schedule_speculative_load) Optimization
- Allow speculative motion of some loads
- fsched-spec-load-dangerous
- Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
- Allow speculative motion of more loads
- fsched-verbose=
- Common RejectNegative Joined UInteger Var(sched_verbose_param)
- -fsched-verbose=<number> Set the verbosity level of the scheduler
- fsched2-use-superblocks
- Common Report Var(flag_sched2_use_superblocks) Optimization
- If scheduling post reload, do superblock scheduling
- fsched2-use-traces
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- fschedule-insns
- Common Report Var(flag_schedule_insns) Optimization
- Reschedule instructions before register allocation
- fschedule-insns2
- Common Report Var(flag_schedule_insns_after_reload) Optimization
- Reschedule instructions after register allocation
- ; This flag should be on when a target implements non-trivial
- ; scheduling hooks, maybe saving some information for its own sake.
- ; On IA64, for example, this is used for correct bundling.
- fselective-scheduling
- Common Report Var(flag_selective_scheduling) Optimization
- Schedule instructions using selective scheduling algorithm
- fselective-scheduling2
- Common Report Var(flag_selective_scheduling2) Optimization
- Run selective scheduling after reload
- fsel-sched-pipelining
- Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
- Perform software pipelining of inner loops during selective scheduling
- fsel-sched-pipelining-outer-loops
- Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
- Perform software pipelining of outer loops during selective scheduling
- fsel-sched-reschedule-pipelined
- Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
- Reschedule pipelined regions without pipelining
- fsemantic-interposition
- Common Report Var(flag_semantic_interposition) Init(1)
- Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker
- ; sched_stalled_insns means that insns can be moved prematurely from the queue
- ; of stalled insns into the ready list.
- fsched-stalled-insns
- Common Report Var(flag_sched_stalled_insns) Optimization UInteger
- Allow premature scheduling of queued insns
- fsched-stalled-insns=
- Common RejectNegative Joined UInteger Optimization
- -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
- ; sched_stalled_insns_dep controls how many recently scheduled cycles will
- ; be examined for a dependency on a stalled insn that is candidate for
- ; premature removal from the queue of stalled insns into the ready list (has
- ; an effect only if the flag 'sched_stalled_insns' is set).
- fsched-stalled-insns-dep
- Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
- Set dependence distance checking in premature scheduling of queued insns
- fsched-stalled-insns-dep=
- Common RejectNegative Joined UInteger Optimization
- -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
- fsched-group-heuristic
- Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
- Enable the group heuristic in the scheduler
- fsched-critical-path-heuristic
- Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
- Enable the critical path heuristic in the scheduler
- fsched-spec-insn-heuristic
- Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
- Enable the speculative instruction heuristic in the scheduler
- fsched-rank-heuristic
- Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
- Enable the rank heuristic in the scheduler
- fsched-last-insn-heuristic
- Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
- Enable the last instruction heuristic in the scheduler
- fsched-dep-count-heuristic
- Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
- Enable the dependent count heuristic in the scheduler
- fsection-anchors
- Common Report Var(flag_section_anchors) Optimization
- Access data in the same section from shared anchor points
- fsee
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- fzee
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- free
- Common Report Var(flag_ree) Init(0)
- Turn on Redundant Extensions Elimination pass.
- fshow-column
- Common Report Var(flag_show_column) Init(1)
- Show column numbers in diagnostics, when available. Default on
- fshrink-wrap
- Common Report Var(flag_shrink_wrap) Optimization
- Emit function prologues only before parts of the function that need it,
- rather than at the top of the function.
- fsignaling-nans
- Common Report Var(flag_signaling_nans) Optimization SetByCombined
- Disable optimizations observable by IEEE signaling NaNs
- fsigned-zeros
- Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
- Disable floating point optimizations that ignore the IEEE signedness of zero
- fsingle-precision-constant
- Common Report Var(flag_single_precision_constant) Optimization
- Convert floating point constants to single precision constants
- fsplit-ivs-in-unroller
- Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
- Split lifetimes of induction variables when loops are unrolled
- fsplit-stack
- Common Report Var(flag_split_stack) Init(-1)
- Generate discontiguous stack frames
- fsplit-wide-types
- Common Report Var(flag_split_wide_types) Optimization
- Split wide types into independent registers
- fssa-phiopt
- Common Report Var(flag_ssa_phiopt) Optimization
- Optimize conditional patterns using SSA PHI nodes
- fstdarg-opt
- Common Report Var(flag_stdarg_opt) Init(1) Optimization
- Optimize amount of stdarg registers saved to stack at start of function
- fvariable-expansion-in-unroller
- Common Report Var(flag_variable_expansion_in_unroller) Optimization
- Apply variable expansion when loops are unrolled
- fstack-check=
- Common Report RejectNegative Joined
- -fstack-check=[no|generic|specific] Insert stack checking code into the program
- fstack-check
- Common Alias(fstack-check=, specific, no)
- Insert stack checking code into the program. Same as -fstack-check=specific
- fstack-limit
- Common Var(common_deferred_options) Defer
- fstack-limit-register=
- Common RejectNegative Joined Var(common_deferred_options) Defer
- -fstack-limit-register=<register> Trap if the stack goes past <register>
- fstack-limit-symbol=
- Common RejectNegative Joined Var(common_deferred_options) Defer
- -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
- fstack-protector
- Common Report Var(flag_stack_protect, 1)
- Use propolice as a stack protection method
- fstack-protector-all
- Common Report RejectNegative Var(flag_stack_protect, 2)
- Use a stack protection method for every function
- fstack-protector-strong
- Common Report RejectNegative Var(flag_stack_protect, 3)
- Use a smart stack protection method for certain functions
- fstack-protector-explicit
- Common Report RejectNegative Var(flag_stack_protect, 4)
- Use stack protection method only for functions with the stack_protect attribute
- fstack-usage
- Common RejectNegative Var(flag_stack_usage)
- Output stack usage information on a per-function basis
- fstrength-reduce
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- ; Nonzero if we should do (language-dependent) alias analysis.
- ; Typically, this analysis will assume that expressions of certain
- ; types do not alias expressions of certain other types. Only used
- ; if alias analysis (in general) is enabled.
- fstrict-aliasing
- Common Report Var(flag_strict_aliasing) Optimization
- Assume strict aliasing rules apply
- fstrict-overflow
- Common Report Var(flag_strict_overflow) Optimization
- Treat signed overflow as undefined
- fsync-libcalls
- Common Report Var(flag_sync_libcalls) Init(1)
- Implement __atomic operations via libcalls to legacy __sync functions
- fsyntax-only
- Common Report Var(flag_syntax_only)
- Check for syntax errors, then stop
- ftest-coverage
- Common Report Var(flag_test_coverage)
- Create data files needed by \"gcov\"
- fthread-jumps
- Common Report Var(flag_thread_jumps) Optimization
- Perform jump threading optimizations
- ftime-report
- Common Report Var(time_report)
- Report the time taken by each compiler pass
- ftls-model=
- Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
- -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
- Enum
- Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
- EnumValue
- Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
- EnumValue
- Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
- EnumValue
- Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
- EnumValue
- Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
- ftoplevel-reorder
- Common Report Var(flag_toplevel_reorder) Init(2)
- Reorder top level functions, variables, and asms
- ftracer
- Common Report Var(flag_tracer) Optimization
- Perform superblock formation via tail duplication
- ; Zero means that floating-point math operations cannot generate a
- ; (user-visible) trap. This is the case, for example, in nonstop
- ; IEEE 754 arithmetic.
- ftrapping-math
- Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
- Assume floating-point operations can trap
- ftrapv
- Common Report Var(flag_trapv) Optimization
- Trap for signed overflow in addition, subtraction and multiplication
- ftree-ccp
- Common Report Var(flag_tree_ccp) Optimization
- Enable SSA-CCP optimization on trees
- ftree-bit-ccp
- Common Report Var(flag_tree_bit_ccp) Optimization
- Enable SSA-BIT-CCP optimization on trees
- ftree-store-ccp
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- ftree-ch
- Common Report Var(flag_tree_ch) Optimization
- Enable loop header copying on trees
- ftree-coalesce-inlined-vars
- Common Report Var(flag_ssa_coalesce_vars,1) Init(2) RejectNegative Optimization
- Enable coalescing of copy-related user variables that are inlined
- ftree-coalesce-vars
- Common Report Var(flag_ssa_coalesce_vars,2) Optimization
- Enable coalescing of all copy-related user variables
- ftree-copyrename
- Common Report Var(flag_tree_copyrename) Optimization
- Replace SSA temporaries with better names in copies
- ftree-copy-prop
- Common Report Var(flag_tree_copy_prop) Optimization
- Enable copy propagation on trees
- ftree-store-copy-prop
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- ftree-cselim
- Common Report Var(flag_tree_cselim) Init(2) Optimization
- Transform condition stores into unconditional ones
- ftree-switch-conversion
- Common Report Var(flag_tree_switch_conversion) Optimization
- Perform conversions of switch initializations.
- ftree-dce
- Common Report Var(flag_tree_dce) Optimization
- Enable SSA dead code elimination optimization on trees
- ftree-dominator-opts
- Common Report Var(flag_tree_dom) Optimization
- Enable dominator optimizations
- ftree-tail-merge
- Common Report Var(flag_tree_tail_merge) Optimization
- Enable tail merging on trees
- ftree-dse
- Common Report Var(flag_tree_dse) Optimization
- Enable dead store elimination
- ftree-forwprop
- Common Report Var(flag_tree_forwprop) Init(1) Optimization
- Enable forward propagation on trees
- ftree-fre
- Common Report Var(flag_tree_fre) Optimization
- Enable Full Redundancy Elimination (FRE) on trees
- foptimize-strlen
- Common Report Var(flag_optimize_strlen) Optimization
- Enable string length optimizations on trees
- fisolate-erroneous-paths-dereference
- Common Report Var(flag_isolate_erroneous_paths_dereference) Optimization
- Detect paths that trigger erroneous or undefined behavior due to
- dereferencing a null pointer. Isolate those paths from the main control
- flow and turn the statement with erroneous or undefined behavior into a trap.
- fisolate-erroneous-paths-attribute
- Common Report Var(flag_isolate_erroneous_paths_attribute) Optimization
- Detect paths that trigger erroneous or undefined behavior due a null value
- being used in a way forbidden by a returns_nonnull or nonnull
- attribute. Isolate those paths from the main control flow and turn the
- statement with erroneous or undefined behavior into a trap.
- ftree-loop-distribution
- Common Report Var(flag_tree_loop_distribution) Optimization
- Enable loop distribution on trees
- ftree-loop-distribute-patterns
- Common Report Var(flag_tree_loop_distribute_patterns) Optimization
- Enable loop distribution for patterns transformed into a library call
- ftree-loop-im
- Common Report Var(flag_tree_loop_im) Init(1) Optimization
- Enable loop invariant motion on trees
- ftree-loop-linear
- Common Alias(floop-interchange)
- Enable loop interchange transforms. Same as -floop-interchange
- ftree-loop-ivcanon
- Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
- Create canonical induction variables in loops
- ftree-loop-optimize
- Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
- Enable loop optimizations on tree level
- ftree-parallelize-loops=
- Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
- Enable automatic parallelization of loops
- ftree-phiprop
- Common Report Var(flag_tree_phiprop) Init(1) Optimization
- Enable hoisting loads from conditional pointers.
- ftree-pre
- Common Report Var(flag_tree_pre) Optimization
- Enable SSA-PRE optimization on trees
- ftree-partial-pre
- Common Report Var(flag_tree_partial_pre) Optimization
- In SSA-PRE optimization on trees, enable partial-partial redundancy elimination
- ftree-pta
- Common Report Var(flag_tree_pta) Optimization
- Perform function-local points-to analysis on trees.
- ftree-reassoc
- Common Report Var(flag_tree_reassoc) Init(1) Optimization
- Enable reassociation on tree level
- ftree-salias
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- ftree-sink
- Common Report Var(flag_tree_sink) Optimization
- Enable SSA code sinking on trees
- ftree-slsr
- Common Report Var(flag_tree_slsr) Optimization
- Perform straight-line strength reduction
- ftree-sra
- Common Report Var(flag_tree_sra) Optimization
- Perform scalar replacement of aggregates
- ftree-ter
- Common Report Var(flag_tree_ter) Optimization
- Replace temporary expressions in the SSA->normal pass
- ftree-lrs
- Common Report Var(flag_tree_live_range_split) Optimization
- Perform live range splitting during the SSA->normal pass
- ftree-vrp
- Common Report Var(flag_tree_vrp) Init(0) Optimization
- Perform Value Range Propagation on trees
- funit-at-a-time
- Common Report Var(flag_unit_at_a_time) Init(1)
- Compile whole compilation unit at a time
- funroll-loops
- Common Report Var(flag_unroll_loops) Optimization
- Perform loop unrolling when iteration count is known
- funroll-all-loops
- Common Report Var(flag_unroll_all_loops) Optimization
- Perform loop unrolling for all loops
- ; Nonzero means that loop optimizer may assume that the induction variables
- ; that control loops do not overflow and that the loops with nontrivial
- ; exit condition are not infinite
- funsafe-loop-optimizations
- Common Report Var(flag_unsafe_loop_optimizations) Optimization
- Allow loop optimizations to assume that the loops behave in normal way
- fassociative-math
- Common Report Var(flag_associative_math) SetByCombined Optimization
- Allow optimization for floating-point arithmetic which may change the
- result of the operation due to rounding.
- freciprocal-math
- Common Report Var(flag_reciprocal_math) SetByCombined Optimization
- Same as -fassociative-math for expressions which include division.
- ; Nonzero means that unsafe floating-point math optimizations are allowed
- ; for the sake of speed. IEEE compliance is not guaranteed, and operations
- ; are allowed to assume that their arguments and results are "normal"
- ; (e.g., nonnegative for SQRT).
- funsafe-math-optimizations
- Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
- Allow math optimizations that may violate IEEE or ISO standards
- funswitch-loops
- Common Report Var(flag_unswitch_loops) Optimization
- Perform loop unswitching
- funwind-tables
- Common Report Var(flag_unwind_tables) Optimization
- Just generate unwind tables for exception handling
- fuse-ld=bfd
- Common Driver Negative(fuse-ld=gold)
- Use the bfd linker instead of the default linker
- fuse-ld=gold
- Common Driver Negative(fuse-ld=bfd)
- Use the gold linker instead of the default linker
- fuse-linker-plugin
- Common Undocumented Var(flag_use_linker_plugin)
- ; Positive if we should track variables, negative if we should run
- ; the var-tracking pass only to discard debug annotations, zero if
- ; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
- ; will be set according to optimize, debug_info_level and debug_hooks
- ; in process_options ().
- fvar-tracking
- Common Report Var(flag_var_tracking) Init(2) Optimization
- Perform variable tracking
- ; Positive if we should track variables at assignments, negative if
- ; we should run the var-tracking pass only to discard debug
- ; annotations. When flag_var_tracking_assignments ==
- ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
- fvar-tracking-assignments
- Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
- Perform variable tracking by annotating assignments
- ; Nonzero if we should toggle flag_var_tracking_assignments after
- ; processing options and computing its default. */
- fvar-tracking-assignments-toggle
- Common Report Var(flag_var_tracking_assignments_toggle) Optimization
- Toggle -fvar-tracking-assignments
- ; Positive if we should track uninitialized variables, negative if
- ; we should run the var-tracking pass only to discard debug
- ; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it
- ; will be set according to flag_var_tracking.
- fvar-tracking-uninit
- Common Report Var(flag_var_tracking_uninit) Optimization
- Perform variable tracking and also tag variables that are uninitialized
- ftree-vectorize
- Common Report Var(flag_tree_vectorize) Optimization
- Enable vectorization on trees
- ftree-vectorizer-verbose=
- Common Joined RejectNegative Ignore
- Does nothing. Preserved for backward compatibility.
- ftree-loop-vectorize
- Common Report Var(flag_tree_loop_vectorize) Optimization
- Enable loop vectorization on trees
- ftree-slp-vectorize
- Common Report Var(flag_tree_slp_vectorize) Optimization
- Enable basic block vectorization (SLP) on trees
- fvect-cost-model=
- Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
- Specifies the cost model for vectorization
-
- fsimd-cost-model=
- Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
- Specifies the vectorization cost model for code marked with a simd directive
- Enum
- Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
- EnumValue
- Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
- EnumValue
- Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
- EnumValue
- Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
- fvect-cost-model
- Common RejectNegative Alias(fvect-cost-model=,dynamic)
- Enables the dynamic vectorizer cost model. Preserved for backward compatibility.
- fno-vect-cost-model
- Common RejectNegative Alias(fvect-cost-model=,unlimited)
- Enables the unlimited vectorizer cost model. Preserved for backward compatibility.
- ftree-vect-loop-version
- Common Ignore
- Does nothing. Preserved for backward compatibility.
- ftree-scev-cprop
- Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
- Enable copy propagation of scalar-evolution information.
- ; -fverbose-asm causes extra commentary information to be produced in
- ; the generated assembly code (to make it more readable). This option
- ; is generally only of use to those who actually need to read the
- ; generated assembly code (perhaps while debugging the compiler itself).
- ; -fno-verbose-asm, the default, causes the extra information
- ; to not be added and is useful when comparing two assembler files.
- fverbose-asm
- Common Report Var(flag_verbose_asm)
- Add extra commentary to assembler output
- fvisibility=
- Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
- -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
- Enum
- Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
- EnumValue
- Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
- EnumValue
- Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
- EnumValue
- Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
- EnumValue
- Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
- fvtable-verify=
- Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
- Validate vtable pointers before using them.
- Enum
- Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
- EnumValue
- Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
- EnumValue
- Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
- EnumValue
- Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
- fvtv-counts
- Common Var(flag_vtv_counts)
- Output vtable verification counters.
- fvtv-debug
- Common Var(flag_vtv_debug)
- Output vtable verification pointer sets information.
- fvpt
- Common Report Var(flag_value_profile_transformations) Optimization
- Use expression value profiles in optimizations
- fweb
- Common Report Var(flag_web) Init(2) Optimization
- Construct webs and split unrelated uses of single variable
- ftree-builtin-call-dce
- Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
- Enable conditional dead code elimination for builtin calls
- fwhole-program
- Common Report Var(flag_whole_program) Init(0)
- Perform whole program optimizations
- fwrapv
- Common Report Var(flag_wrapv) Optimization
- Assume signed arithmetic overflow wraps around
- fzero-initialized-in-bss
- Common Report Var(flag_zero_initialized_in_bss) Init(1)
- Put zero initialized data in the bss section
- g
- Common JoinedOrMissing
- Generate debug information in default format
- gcoff
- Common JoinedOrMissing Negative(gdwarf)
- Generate debug information in COFF format
- gdwarf
- Common JoinedOrMissing Negative(gdwarf-)
- Generate debug information in default version of DWARF format
- gdwarf-
- Common Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
- Generate debug information in DWARF v2 (or later) format
- ggdb
- Common JoinedOrMissing
- Generate debug information in default extended format
- gno-pubnames
- Common Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
- Don't generate DWARF pubnames and pubtypes sections.
- gpubnames
- Common Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
- Generate DWARF pubnames and pubtypes sections.
- ggnu-pubnames
- Common Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
- Generate DWARF pubnames and pubtypes sections with GNU extensions.
- gno-record-gcc-switches
- Common RejectNegative Var(dwarf_record_gcc_switches,0) Init(1)
- Don't record gcc command line switches in DWARF DW_AT_producer.
- grecord-gcc-switches
- Common RejectNegative Var(dwarf_record_gcc_switches,1)
- Record gcc command line switches in DWARF DW_AT_producer.
- gno-split-dwarf
- Common Driver RejectNegative Var(dwarf_split_debug_info,0) Init(0)
- Don't generate debug information in separate .dwo files
- gsplit-dwarf
- Common Driver RejectNegative Var(dwarf_split_debug_info,1)
- Generate debug information in separate .dwo files
- gstabs
- Common JoinedOrMissing Negative(gstabs+)
- Generate debug information in STABS format
- gstabs+
- Common JoinedOrMissing Negative(gvms)
- Generate debug information in extended STABS format
- gno-strict-dwarf
- Common RejectNegative Var(dwarf_strict,0) Init(0)
- Emit DWARF additions beyond selected version
- gstrict-dwarf
- Common Report RejectNegative Var(dwarf_strict,1)
- Don't emit DWARF additions beyond selected version
- gtoggle
- Common Report Var(flag_gtoggle)
- Toggle debug information generation
- gvms
- Common JoinedOrMissing Negative(gxcoff)
- Generate debug information in VMS format
- gxcoff
- Common JoinedOrMissing Negative(gxcoff+)
- Generate debug information in XCOFF format
- gxcoff+
- Common JoinedOrMissing Negative(gcoff)
- Generate debug information in extended XCOFF format
- Enum
- Name(compressed_debug_sections) Type(int)
- ; Since -gz= is completely handled in specs, the values aren't used and we
- ; assign arbitrary constants.
- EnumValue
- Enum(compressed_debug_sections) String(none) Value(0)
- EnumValue
- Enum(compressed_debug_sections) String(zlib) Value(1)
- EnumValue
- Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
- gz
- Common Driver
- Generate compressed debug sections
- gz=
- Common Driver Joined Enum(compressed_debug_sections)
- -gz=<format> Generate compressed debug sections in format <format>
- h
- Driver Joined Separate
- iplugindir=
- Common Joined Var(plugindir_string) Init(0)
- -iplugindir=<dir> Set <dir> to be the default plugin directory
- imultiarch
- Common Joined Separate RejectDriver Var(imultiarch) Init(0)
- -imultiarch <dir> Set <dir> to be the multiarch include subdirectory
- l
- Driver Joined Separate
- n
- Driver
- no-canonical-prefixes
- Driver
- nodefaultlibs
- Driver
- nostartfiles
- Driver
- nostdlib
- Driver
- o
- Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
- -o <file> Place output into <file>
- p
- Common Var(profile_flag)
- Enable function profiling
- pass-exit-codes
- Driver Var(pass_exit_codes)
- pedantic
- Common Alias(Wpedantic)
- pedantic-errors
- Common Var(flag_pedantic_errors)
- Like -pedantic but issue them as errors
- pg
- Driver
- pipe
- Driver Var(use_pipes)
- print-file-name=
- Driver JoinedOrMissing Var(print_file_name)
- print-libgcc-file-name
- Driver
- print-multi-directory
- Driver Var(print_multi_directory)
- print-multi-lib
- Driver Var(print_multi_lib)
- print-multi-os-directory
- Driver Var(print_multi_os_directory)
-
- print-multiarch
- Driver Var(print_multiarch)
- print-prog-name=
- Driver JoinedOrMissing Var(print_prog_name)
- print-search-dirs
- Driver Var(print_search_dirs)
- print-sysroot
- Driver Var(print_sysroot)
- print-sysroot-headers-suffix
- Driver Var(print_sysroot_headers_suffix)
- quiet
- Common Var(quiet_flag) RejectDriver
- Do not display functions compiled or elapsed time
- r
- Driver
- s
- Driver
- save-temps
- Driver
- save-temps=
- Driver Joined
- t
- Driver
- time
- Driver Var(report_times)
- time=
- Driver JoinedOrMissing
- u
- Driver Joined Separate
- undef
- Driver
- ; C option, but driver must not handle as "-u ndef".
- v
- Common Driver Var(verbose_flag)
- Enable verbose output
- version
- Common Var(version_flag) RejectDriver
- Display the compiler's version
- w
- Common Var(inhibit_warnings)
- Suppress warnings
- wrapper
- Driver Separate Var(wrapper_string)
- x
- Driver Joined Separate
- shared
- Driver RejectNegative Negative(pie)
- Create a shared library
- shared-libgcc
- Driver
- specs
- Driver Separate Alias(specs=)
- specs=
- Driver Joined
- static
- Driver
- static-libgcc
- Driver
- static-libgfortran
- Driver
- ; Documented for Fortran, but always accepted by driver.
- static-libstdc++
- Driver
- static-libgo
- Driver
- ; Documented for Go, but always accepted by driver.
- static-libasan
- Driver
- static-libtsan
- Driver
- static-liblsan
- Driver
- static-libubsan
- Driver
- symbolic
- Driver
- pie
- Driver RejectNegative Negative(shared)
- Create a position independent executable
- z
- Driver Joined Separate
- fipa-ra
- Common Report Var(flag_ipa_ra) Optimization
- Use caller save register across calls if possible
- ; This comment is to ensure we retain the blank line above.
|