Here is a summary of all the options, grouped by type. Explanations are in the following sections.
-c -S -E -o file -pipe -pass-exit-codes -x language
-ObjC (APPLE ONLY) -ObjC++ (APPLE ONLY)
-arch arch (APPLE ONLY)
-v -### --help --target-help --version
-ansi -std=standard -aux-info filename
-faltivec (APPLE ONLY)
-fasm-blocks (APPLE ONLY)
-fno-asm -fno-builtin -fno-builtin-function
-fhosted -ffreestanding -fms-extensions
-trigraphs -no-integrated-cpp -traditional -traditional-cpp
-fallow-single-precision -fcond-mismatch
-fconstant-cfstrings (APPLE ONLY)
-fpch-preprocess (APPLE ONLY)
-fsigned-bitfields -fsigned-char
-funsigned-bitfields -funsigned-char
-fpascal-strings (APPLE ONLY)
-fcoalesce (APPLE ONLY) -fweak-coalesced (APPLE ONLY)
-Wno-#warnings (APPLE ONLY)
-Wextra-tokens (APPLE ONLY)
-Wpragma-once (APPLE ONLY)
-Wnewline-eof (APPLE ONLY)
-Wno-altivec-long-deprecated (APPLE ONLY)
-fwritable-strings
-fabi-version=n -fno-access-control -fcheck-new
-fconserve-space -fno-const-strings -fdollars-in-identifiers
-fno-elide-constructors
-fno-enforce-eh-specs -fexternal-templates
-falt-external-templates
-ffor-scope -fno-for-scope -fno-gnu-keywords
-fno-implicit-templates
-fno-implicit-inline-templates
-fno-implement-inlines
-findirect-virtual-calls (APPLE ONLY)
-fapple-kext (APPLE ONLY)
-fcoalesce-templates (APPLE ONLY)
-fms-extensions
-fno-nonansi-builtins -fno-operator-names
-fno-optional-diags -fpermissive
-frepo -fno-rtti -fstats -ftemplate-depth-n
-fuse-cxa-atexit -fvtable-gc -fno-weak -nostdinc++
-fno-default-inline -Wabi -Wctor-dtor-privacy
-Wnon-virtual-dtor -Wreorder
-Weffc++ -Wno-deprecated
-Wno-non-template-friend -Wold-style-cast
-Woverloaded-virtual -Wno-pmf-conversions
-Wsign-promo -Wsynth
-fconstant-string-class=class-name
-fgnu-runtime -fnext-runtime
-fno-nil-receivers (APPLE ONLY)
-fobjc-direct-dispatch (APPLE ONLY)
-fobjc-exceptions (APPLE ONLY)
-freplace-objc-classes (APPLE ONLY)
-fzero-link (APPLE ONLY)
-gen-decls
-Wno-protocol -Wselector -Wundeclared-selector
-fmessage-length=n
-fdiagnostics-show-location=[once|every-line]
-fsyntax-only -pedantic -pedantic-errors
-w -W -Wall -Waggregate-return
-Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment
-Wconversion -Wno-deprecated-declarations
-Wdisabled-optimization -Wno-div-by-zero -Werror
-Wfloat-equal -Wformat -Wformat=2
-Wformat-nonliteral -Wformat-security
-Wimplicit -Wimplicit-int
-Wimplicit-function-declaration
-Werror-implicit-function-declaration
-Wimport -Winline -Winvalid-pch -Wno-endif-labels
-Wno-invalid-offsetof (APPLE ONLY)
-Wlarger-than-len -Wlong-long
-Wno-long-double (APPLE ONLY)
-Wmain -Wmissing-braces
-Wmissing-format-attribute -Wmissing-noreturn
-Wmost (APPLE ONLY)
-Wno-multichar -Wno-format-extra-args -Wno-format-y2k
-Wno-import -Wnonnull -Wpacked -Wpadded
-Wparentheses -Wpointer-arith -Wredundant-decls
-Wreturn-type -Wsequence-point -Wshadow
-Wsign-compare -Wstrict-aliasing
-Wswitch -Wswitch-default -Wswitch-enum
-Wsystem-headers -Wtrigraphs -Wundef -Wuninitialized
-Wunknown-pragmas -Wunreachable-code
-Wunused -Wunused-function -Wunused-label -Wunused-parameter
-Wunused-value -Wunused-variable -Wwrite-strings
-Wbad-function-cast -Wmissing-declarations
-Wmissing-prototypes -Wnested-externs
-Wstrict-prototypes -Wtraditional
-dletters -dumpspecs -dumpmachine -dumpversion
-fdump-unnumbered -fdump-translation-unit[-n]
-fdump-class-hierarchy[-n]
-fdump-tree-original[-n] -fdump-tree-optimized[-n]
-fdump-tree-inlined[-n]
-feliminate-dwarf2-dups -fmem-report
-fprofile-arcs -fsched-verbose=n
-ftest-coverage -ftime-report
-g -glevel -gcoff -gdwarf -gdwarf-1 -gdwarf-1+ -gdwarf-2
-ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+
-p -pg -print-file-name=library -print-libgcc-file-name
-print-multi-directory -print-multi-lib
-print-prog-name=program -print-search-dirs -Q
-save-temps -time -fsave-repository=location -grepository
-falign-functions=n -falign-jumps=n
-falign-labels=n -falign-loops=n
-falign-loops-max-skip=n -falign-jumps-max-skip=n
-fbranch-probabilities -fcaller-saves -fcprop-registers
-fcse-follow-jumps -fcse-skip-blocks -fdata-sections
-fdelayed-branch -fdelete-null-pointer-checks
-fexpensive-optimizations -ffast-math -ffloat-store
-fforce-addr -fforce-mem -ffunction-sections
-fgcse -fgcse-lm -fgcse-sm -floop-optimize -fcrossjumping
-fif-conversion -fif-conversion2
-finline-functions -finline-limit=n -fkeep-inline-functions
-fkeep-static-consts -fmerge-constants -fmerge-all-constants
-fmove-all-movables -fnew-ra -fno-branch-count-reg
-fno-default-inline -fno-defer-pop
-fno-function-cse -fno-guess-branch-probability
-fno-inline -fno-math-errno -fno-peephole -fno-peephole2
-funsafe-math-optimizations -ffinite-math-only
-fno-trapping-math -fno-zero-initialized-in-bss
-fomit-frame-pointer -foptimize-register-move
-foptimize-sibling-calls -fprefetch-loop-arrays
-freduce-all-givs -fregmove -frename-registers
-freorder-blocks -freorder-functions
-frerun-cse-after-loop -frerun-loop-opt
-fschedule-insns -fschedule-insns2
-fno-sched-interblock -fno-sched-spec -fsched-spec-load
-fsched-spec-load-dangerous -fsignaling-nans
-fsingle-precision-constant -fssa -fssa-ccp -fssa-dce
-fstrength-reduce -fstrict-aliasing -ftracer -fthread-jumps
-funroll-all-loops -funroll-loops
--param name=value
-O -O0 -O1 -O2 -O3 -Os -fast (APPLE ONLY)
-$ -Aquestion=answer -A-question[=answer] -C -dD -dI -dM -dN -Dmacro[=defn] -E -H -idirafter dir -include file -imacros file -iprefix file -iwithprefix dir -iwithprefixbefore dir -isystem dir -M -MM -MF -MG -MP -MQ -MT -nostdinc -P -remap -dependency-file (APPLE ONLY) -trigraphs -undef -Umacro -Wp,option
-Wa,option
object-file-name -llibrary
-nostartfiles -nodefaultlibs -nostdlib -no-c++filt (APPLE ONLY)
-s -static -static-libgcc -shared -shared-libgcc -symbolic
-Wl,option -Xlinker option
-u symbol
-Bprefix -Idir -I-
-Fdir (APPLE ONLY)
-Ldir -specs=file
-V version -b machine
RS/6000 and PowerPC Options
-mcpu=cpu-type
-mtune=cpu-type
-mpower -mno-power -mpower2 -mno-power2
-mpowerpc -mpowerpc64 -mno-powerpc
-maltivec -mno-altivec
-mpowerpc-gpopt -mno-powerpc-gpopt
-mpowerpc-gfxopt -mno-powerpc-gfxopt
-mnew-mnemonics -mold-mnemonics
-mfull-toc -mminimal-toc -mno-fp-in-toc -mno-sum-in-toc
-m64 -m32 -mxl-call -mno-xl-call -mpe
-malign-mac68k (APPLE ONLY)
-malign-power (APPLE ONLY)
-malign-natural (APPLE ONLY)
-msoft-float -mhard-float -mmultiple -mno-multiple
-mstring -mno-string -mupdate -mno-update
-mfused-madd -mno-fused-madd -mbit-align -mno-bit-align
-mstrict-align -mno-strict-align -mrelocatable
-mno-relocatable -mrelocatable-lib -mno-relocatable-lib
-mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian
-mdynamic-no-pic (APPLE ONLY)
-mlong-branch (APPLE ONLY)
-mcall-aix -mcall-sysv -mcall-netbsd
-maix-struct-return -msvr4-struct-return
-mabi=altivec -mabi=no-altivec
-mabi=spe -mabi=no-spe
-misel=yes -misel=no
-mprototype -mno-prototype
-msim -mmvme -mads -myellowknife -memb -msdata
-msdata=opt -mvxworks -mwindiss -G num -pthread
Darwin Options
-all_load -allowable_client -arch -arch_errors_fatal
-arch_only -bind_at_load -bundle -bundle_loader
-client_name -compatibility_version -current_version
-dead_strip -no_dead_strip_inits_and_terms
-dependency-file -dylib_file -dylinker_install_name
-dynamic -dynamiclib -exported_symbols_list
-filelist -flat_namespace -force_cpusubtype_ALL
-force_flat_namespace -headerpad_max_install_names
-image_base -init -install_name -keep_private_externs
-multi_module -multiply_defined -multiply_defined_unused
-noall_load -nomultidefs -noprebind -noseglinkedit
-pagezero_size -prebind -prebind_all_twolevel_modules
-private_bundle -read_only_relocs -sectalign
-sectobjectsymbols -whyload -seg1addr
-sectcreate -sectobjectsymbols -sectorder
-seg_addr_table -seg_addr_table_filename -seglinkedit
-segprot -segs_read_only_addr -segs_read_write_addr
-single_module -static -sub_library -sub_umbrella
-twolevel_namespace -umbrella -undefined
-unexported_symbols_list -weak_reference_mismatches -whatsloaded
-mone-byte-bool
i386 and x86-64 Options
-mcpu=cpu-type -march=cpu-type -mfpmath=unit
-masm=dialect -mno-fancy-math-387
-mno-fp-ret-in-387 -msoft-float -msvr3-shlib
-mno-wide-multiply -mrtd -malign-double
-mpreferred-stack-boundary=num
-mmmx -msse -msse2 -m3dnow
-mthreads -mno-align-stringops -minline-all-stringops
-mpush-args -maccumulate-outgoing-args -m128bit-long-double
-m96bit-long-double -mregparm=num -momit-leaf-frame-pointer
-mno-red-zone
-mcmodel=code-model
-m32 -m64
-fcall-saved-reg -fcall-used-reg
-ffixed-reg -fexceptions
-fnon-call-exceptions -funwind-tables
-fasynchronous-unwind-tables
-finhibit-size-directive -finstrument-functions
-fno-common -fno-ident -fno-gnu-linker
-fpcc-struct-return -fpic -fPIC
-freg-struct-return -fshared-data -fshort-enums
-fshort-double -fshort-wchar -fvolatile
-fvolatile-global -fvolatile-static
-fverbose-asm -fpack-struct -fstack-check
-fstack-limit-register=reg -fstack-limit-symbol=sym
-fargument-alias -fargument-noalias
-fargument-noalias-global -fleading-underscore
-ftls-model=model
-ftrapv -fbounds-check