gcc

The default compiler for most linux distributions

Options

NameDescription
--analyzer-output <command>Static analyzer report output format
--analyzeRun the static analyzer
-arcmt-migrate-emit-errorsEmit ARC errors even if the migrator can fix them
-arcmt-migrate-report-output <command>Output path for the plist report
-B <command>Add <dir> to search path for binaries and object files used implicitly
-CCInclude comments from within macros in preprocessed output
-cl-denorms-are-zeroOpenCL only. Allow denormals to be flushed to zero
-cl-fast-relaxed-mathOpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__
-cl-finite-math-onlyOpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf
-cl-fp32-correctly-rounded-divide-sqrtOpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded
-cl-kernel-arg-infoOpenCL only. Generate kernel argument metadata
-cl-mad-enableOpenCL only. Allow use of less precise MAD computations in the generated binary
-cl-no-signed-zerosOpenCL only. Allow use of less precise no signed zeros computations in the generated binary
-cl-opt-disableOpenCL only. This option disables all optimizations. By default optimizations are enabled
-cl-single-precision-constantOpenCL only. Treat double precision floating-point constant as single precision constant
-cl-std <command>OpenCL language standard to compile for
-cl-strict-aliasingOpenCL only. This option is added for compatibility with OpenCL 1.0
-cl-uniform-work-group-sizeOpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
-cl-unsafe-math-optimizationsOpenCL only. Allow unsafe floating-point optimizations
--config <command>Specifies configuration file
--cuda-compile-host-deviceCompile CUDA code for both host and device (default)
--cuda-device-onlyCompile CUDA code for device only
--cuda-host-onlyCompile CUDA code for host only
--cuda-include-ptx <command...>Include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once
--cuda-noopt-device-debugEnable device-side debug info generation. Disables ptxas optimizations
--cuda-path-ignore-envIgnore environment variables to detect CUDA installation
--cuda-path <command>CUDA installation path
-cxx-isystem <command>Add directory to the C++ SYSTEM include search path
-CInclude comments in preprocessed output
-cOnly run preprocess, compile, and assemble steps
-dDPrint macro definitions in -E mode in addition to normal output
-dependency-dot <command>Filename to write DOT-formatted header dependencies to
-dependency-file <command>Filename (or -) to write dependency output to
-dIPrint include directives in -E mode in addition to normal output
-dMPrint macro definitions in -E mode instead of normal output
-D <command>Define <macro> to <value> (or 1 if <value> omitted)
-emit-astEmit Clang AST files for source inputs
-emit-interface-stubsGenerate Interface Stub Files
-emit-llvmUse the LLVM representation for assembler and object files
-emit-merged-ifsGenerate Interface Stub Files, emit merged text not binary
--emit-static-libEnable linker job to emit a static library
-enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clangTrivial automatic variable initialization to zero is only here for benchmarks, it'll eventually be removed, and I'm OK with that because I'm only using it to benchmark
-EOnly run the preprocessor
-fAAPCSBitfieldLoadFollows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only)
-faddrsigEmit an address-significance table
-faligned-allocationEnable C++17 aligned allocation functions
-fallow-editor-placeholdersTreat editor placeholders as valid source code
-fansi-escape-codesUse ANSI escape codes for diagnostics
-fapinotes-cache-path <command>Does nothing; API notes are no longer cached separately from modules
-fapinotes-modulesEnable module-based external API notes support
-fapinotes-swift-version <command>Specify the Swift version to use when filtering API notes
-fapinotesEnable external API notes support
-fapple-kextUse Apple's kernel extensions ABI
-fapple-link-rtlibForce linking the clang builtins runtime library
-fapple-pragma-packEnable Apple gcc-compatible #pragma pack handling
-fapplication-extensionRestrict
-fasm-blocks
-fautolink
-fbasic-block-sections <command>Place each function's basic blocks in unique sections (ELF Only) : all | labels | none | list=<file>
-fblocksEnable the 'blocks' language feature
-fborland-extensionsAccept non-standard constructs supported by the Borland compiler
-fbranch-target-identificationEmit branch target identification instructions for indirect branch destinations
-fbuild-session-file <command>Use the last modification time of <file> as the build session timestamp
-fbuild-session-timestamp <command>Time when the current build session started
-fbuiltin-module-mapLoad the clang builtins module map file
-fc++-static-destructors
-fcall-saved-x10Make the x10 register call-saved (AArch64 only)
-fcall-saved-x11Make the x11 register call-saved (AArch64 only)
-fcall-saved-x12Make the x12 register call-saved (AArch64 only)
-fcall-saved-x13Make the x13 register call-saved (AArch64 only)
-fcall-saved-x14Make the x14 register call-saved (AArch64 only)
-fcall-saved-x15Make the x15 register call-saved (AArch64 only)
-fcall-saved-x18Make the x18 register call-saved (AArch64 only)
-fcall-saved-x8Make the x8 register call-saved (AArch64 only)
-fcall-saved-x9Make the x9 register call-saved (AArch64 only)
-fcaret-diagnostics
-fcf-protection [command]Enable cf-protection in 'full' mode
-fchar8_tEnable C++ builtin type char8_t
-fclang-abi-compat <command>Attempt to match the ABI of Clang <version>
-fcolor-diagnosticsEnable colors in diagnostics
-fcomment-block-commands <command>Treat each comma separated argument in <arg> as a documentation comment block command
-fcommonPlace uninitialized global variables in a common block
-fcomplete-member-pointersRequire member pointer base types to be complete if they would be significant under the Microsoft ABI
-fconvergent-functionsAssume functions may be convergent
-fcoroutines-tsEnable support for the C++ Coroutines TS
-fcoverage-mappingGenerate coverage mapping to enable code coverage analysis
-fcs-profile-generate [command]Generate instrumented code to collect context sensitive execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)
-fcuda-approx-transcendentalsUse approximate transcendental functions
-fcuda-flush-denormals-to-zeroFlush denormal floating point values to zero in CUDA device mode
-fcuda-short-ptrUse 32-bit pointers for accessing const/local/shared address spaces
-fcxx-exceptionsEnable C++ exceptions
-fdata-sectionsPlace each data in its own section
-fdebug-compilation-dir <command>The compilation directory to embed in the debug info
-fdebug-default-version <command>Default DWARF version to use, if a -g option caused DWARF debug info to be produced
-fdebug-info-for-profilingEmit extra debug info to make sample profile more accurate
-fdebug-macroEmit macro debug information
-fdebug-prefix-map <command>Remap file source paths in debug info
-fdebug-ranges-base-addressUse DWARF base address selection entries in .debug_ranges
-fdebug-types-sectionPlace debug types in their own section (ELF Only)
-fdeclspecAllow __declspec as a keyword
-fdelayed-template-parsingParse templated function definitions at the end of the translation unit
-fdelete-null-pointer-checksTreat usage of null pointers as undefined behavior (default)
-fdiagnostics-absolute-pathsPrint absolute paths in diagnostics
-fdiagnostics-hotness-threshold <command>Prevent optimization remarks from being output if they do not have at least this profile count
-fdiagnostics-parseable-fixitsPrint fix-its in machine parseable form
-fdiagnostics-print-source-range-infoPrint source range spans in numeric form
-fdiagnostics-show-hotnessEnable profile hotness information in diagnostic line
-fdiagnostics-show-note-include-stackDisplay include stacks for diagnostic notes
-fdiagnostics-show-optionPrint option name with mappable diagnostics
-fdiagnostics-show-template-treePrint a template comparison tree for differing templates
-fdigraphsEnable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default)
-fdiscard-value-namesDiscard value names in LLVM IR
-fdollars-in-identifiersAllow '$' in identifiers
-fdouble-square-bracket-attributesEnable '[[]]' attributes in all C and C++ language modes
-fdwarf-directory-asm
-fdwarf-exceptionsUse DWARF style exceptions
-fembed-bitcode-markerEmbed placeholder LLVM IR data as a marker
-fembed-bitcode [command]Embed LLVM bitcode (option: off, all, bitcode, marker)
-femit-all-declsEmit all declarations, even if unused
-femulated-tlsUse emutls functions to access thread_local variables
-fenable-globaldseEnable experimental global dead store elimination
-fenable-matrixEnable matrix data type and related builtin functions
-fexceptionsEnable support for exception handling
-fexperimental-new-constant-interpreterEnable the experimental new constant interpreter
-fexperimental-new-pass-managerEnables an experimental new pass manager in LLVM
-fexperimental-relative-c++-abi-vtablesUse the experimental C++ class ABI for classes with virtual tables
-fexperimental-strict-floating-pointEnables experimental strict floating point in LLVM
-ffast-mathAllow aggressive, lossy floating-point optimizations
-ffile-prefix-map <command>Remap file source paths in debug info and predefined preprocessor macros
-ffine-grained-bitfield-accessesUse separate accesses for consecutive bitfield runs with legal widths and alignments
-ffixed-pointEnable fixed point types
-ffixed-r19Reserve register r19 (Hexagon only)
-ffixed-r9Reserve the r9 register (ARM only)
-ffixed-x10Reserve the x10 register (AArch64/RISC-V only)
-ffixed-x11Reserve the x11 register (AArch64/RISC-V only)
-ffixed-x12Reserve the x12 register (AArch64/RISC-V only)
-ffixed-x13Reserve the x13 register (AArch64/RISC-V only)
-ffixed-x14Reserve the x14 register (AArch64/RISC-V only)
-ffixed-x15Reserve the x15 register (AArch64/RISC-V only)
-ffixed-x16Reserve the x16 register (AArch64/RISC-V only)
-ffixed-x17Reserve the x17 register (AArch64/RISC-V only)
-ffixed-x18Reserve the x18 register (AArch64/RISC-V only)
-ffixed-x19Reserve the x19 register (AArch64/RISC-V only)
-ffixed-x1Reserve the x1 register (AArch64/RISC-V only)
-ffixed-x20Reserve the x20 register (AArch64/RISC-V only)
-ffixed-x21Reserve the x21 register (AArch64/RISC-V only)
-ffixed-x22Reserve the x22 register (AArch64/RISC-V only)
-ffixed-x23Reserve the x23 register (AArch64/RISC-V only)
-ffixed-x24Reserve the x24 register (AArch64/RISC-V only)
-ffixed-x25Reserve the x25 register (AArch64/RISC-V only)
-ffixed-x26Reserve the x26 register (AArch64/RISC-V only)
-ffixed-x27Reserve the x27 register (AArch64/RISC-V only)
-ffixed-x28Reserve the x28 register (AArch64/RISC-V only)
-ffixed-x29Reserve the x29 register (AArch64/RISC-V only)
-ffixed-x2Reserve the x2 register (AArch64/RISC-V only)
-ffixed-x30Reserve the x30 register (AArch64/RISC-V only)
-ffixed-x31Reserve the x31 register (AArch64/RISC-V only)
-ffixed-x3Reserve the x3 register (AArch64/RISC-V only)
-ffixed-x4Reserve the x4 register (AArch64/RISC-V only)
-ffixed-x5Reserve the x5 register (AArch64/RISC-V only)
-ffixed-x6Reserve the x6 register (AArch64/RISC-V only)
-ffixed-x7Reserve the x7 register (AArch64/RISC-V only)
-ffixed-x8Reserve the x8 register (AArch64/RISC-V only)
-ffixed-x9Reserve the x9 register (AArch64/RISC-V only)
-fforce-dwarf-frameAlways emit a debug frame section
-fforce-emit-vtablesEmits more virtual tables to improve devirtualization
-fforce-enable-int128Enable support for int128_t type
-ffp-contract <command>Form fused FP ops (e.g. FMAs): fast (everywhere) | on (according to FP_CONTRACT pragma) | off (never fuse). Default is 'fast' for CUDA/HIP and 'on' otherwise
-ffp-exception-behavior <command>Specifies the exception behavior of floating-point operations
-ffp-model <command>Controls the semantics of floating-point calculations
-ffreestandingAssert that the compilation takes place in a freestanding environment
-ffunction-sectionsPlace each function in its own section
-fglobal-iselEnables the global instruction selector
-fgnu-inline-asm
-fgnu-keywordsAllow GNU-extension keywords regardless of language standard
-fgnu-runtimeGenerate output compatible with the standard GNU Objective-C runtime
-fgnu89-inlineUse the gnu89 inline semantics
-fgnuc-version <command>Sets various macros to claim compatibility with the given GCC version
-fgpu-allow-device-initAllow
-fgpu-rdcGenerate relocatable device code, also known as separate compilation mode
-fhip-new-launch-apiUse new kernel launching API for HIP
-fignore-exceptionsEnable support for ignoring exception handling constructs
-fimplicit-module-mapsImplicitly search the file system for module map files
-finline-functionsInline suitable functions
-finline-hint-functionsInline
-finstrument-function-entry-bareInstrument function entry only, after inlining, without arguments to the instrumentation call
-finstrument-functions-after-inliningLike -finstrument-functions, but insert the calls after inlining
-finstrument-functionsGenerate calls to instrument function entry and exit
-fintegrated-asEnable the integrated assembler
-fintegrated-cc1Run cc1 in-process
-fjump-tablesUse jump tables for lowering switches
-fkeep-static-constsKeep static const variables if unused
-flax-vector-conversions <command>Enable implicit vector bit-casts
-flto-jobs <command>Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
-flto [command]Set LTO mode to either 'full' or 'thin'
-fmacro-prefix-map <command>Remap file source paths in predefined preprocessor macros
-fmath-errnoRequire math functions to indicate errors by setting errno
-fmax-tokens <command>Max total number of preprocessed tokens for -Wmax-tokens
-fmax-type-align <command>Specify the maximum alignment to enforce on pointers lacking an explicit alignment
-fmerge-all-constantsAllow merging of constants
-fmessage-length <command>Format message diagnostics so that they fit within N columns
-fmodule-file <command>Specify the mapping of module name to precompiled module file, or load a module file if name is omitted
-fmodule-map-file <command>Load this module map file
-fmodule-name <command>Specify the name of the module to build
-fmodules-cache-path <command>Specify the module cache path
-fmodules-decluseRequire declaration of modules used within a module
-fmodules-disable-diagnostic-validationDisable validation of the diagnostic options when loading the module
-fmodules-ignore-macro <command>Ignore the definition of the given macro when building and loading modules
-fmodules-prune-after <command>Specify the interval (in seconds) after which a module file will be considered unused
-fmodules-prune-interval <command>Specify the interval (in seconds) between attempts to prune the module cache
-fmodules-search-allSearch even non-imported modules to resolve references
-fmodules-strict-decluseLike -fmodules-decluse but requires all headers to be in modules
-fmodules-tsEnable support for the C++ Modules TS
-fmodules-user-build-path <command>Specify the module user build path
-fmodules-validate-input-files-contentValidate PCM input files based on content if mtime differs
-fmodules-validate-once-per-build-sessionDon't verify input files for the modules if the module has been successfully validated or loaded during this build session
-fmodules-validate-system-headersValidate the system headers that a module depends on when loading the module
-fmodulesEnable the 'modules' language feature
-fms-compatibility-version <command>Dot-separated value representing the Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
-fms-compatibilityEnable full Microsoft Visual C++ compatibility
-fms-extensionsAccept some non-standard constructs supported by the Microsoft compiler
-fmsc-version <command>Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
-fnew-alignment <command>Specifies the largest alignment guaranteed by '::operator new(size_t)'
-fno-access-control
-fno-addrsigDon't emit an address-significance table
-fno-allow-editor-placeholders
-fno-apinotes-modulesDisable module-based external API notes support
-fno-apinotesDisable external API notes support
-fno-asm-blocks
-fno-assume-sane-operator-newDon't assume that C++'s global operator new can't alias any pointer
-fno-autolinkDisable generation of linker directives for automatic library linking
-fno-blocks
-fno-builtin <command>Disable implicit builtin knowledge of functions
-fno-c++-static-destructorsDisable C++ static destructor registration
-fno-caret-diagnostics
-fno-char8_tDisable C++ builtin type char8_t
-fno-color-diagnosticsDisable colors in diagnostics
-fno-commonCompile common globals like normal definitions
-fno-complete-member-pointersDo not require member pointer base types to be complete if they would be significant under the Microsoft ABI
-fno-constant-cfstringsDisable
-fno-constant-nsarray-literalsDisable creation of CodeFoundation-type constant initializer `NSArray`s from array literals
-fno-constant-nsdictionary-literalsDisable creation of CodeFoundation-type constant initializer `NSDictionary`s from dictionary literals
-fno-constant-nsnumber-literalsDisable creation of CodeFoundation-type constant initializer `NSNumber`s from number literals
-fno-coroutines-ts
-fno-coverage-mappingDisable code coverage analysis
-fno-crash-diagnosticsDisable auto-generation of preprocessed source files and a script for reproduction during a clang crash
-fno-cuda-approx-transcendentalsDon't use approximate transcendental functions
-fno-cuda-short-ptr
-fno-cxx-exceptions
-fno-data-sections
-fno-debug-info-for-profiling
-fno-debug-macroDo not emit macro debug information
-fno-debug-ranges-base-address
-fno-declspecDisallow __declspec as a keyword
-fno-delayed-template-parsingDisable delayed template parsing
-fno-delete-null-pointer-checksDo not treat usage of null pointers as undefined behavior
-fno-diagnostics-fixit-infoDo not include fixit information in diagnostics
-fno-digraphsDisallow alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:'
-fno-discard-value-namesDo not discard value names in LLVM IR
-fno-dollars-in-identifiersDisallow '$' in identifiers
-fno-double-square-bracket-attributesDisable '[[]]' attributes in all C and C++ language modes
-fno-dwarf-directory-asm
-fno-elide-constructorsDisable
-fno-elide-typeDo not elide types when printing diagnostics
-fno-exceptionsDisable support for exception handling
-fno-experimental-new-pass-managerDisables an experimental new pass manager in LLVM
-fno-experimental-relative-c++-abi-vtablesDo not use the experimental C++ class ABI for classes with virtual tables
-fno-fast-math
-fno-fine-grained-bitfield-accessesUse large-integer access for consecutive bitfield runs
-fno-fixed-pointDisable fixed point types
-fno-force-dwarf-frame
-fno-force-emit-vtables
-fno-force-enable-int128Disable support for int128_t type
-fno-function-sections
-fno-global-iselDisables the global instruction selector
-fno-gnu-inline-asmDisable GNU style inline asm
-fno-gnu89-inline
-fno-gpu-allow-device-initDon't allow device side init function in HIP
-fno-gpu-rdc
-fno-hip-new-launch-apiDon't
-fno-integrated-asDisable the integrated assembler
-fno-integrated-cc1Spawn a separate process for each cc1
-fno-jump-tablesDo not use jump tables for lowering switches
-fno-keep-static-constsDon't
-fno-ltoDisable LTO mode (default)
-fno-math-errno
-fno-merge-all-constantsDisallow merging of constants
-fno-no-access-controlDisable C++ access control
-fno-objc-infer-related-result-typeDo not infer Objective-C related result type based on method family
-fno-operator-namesDo not treat C++ operator name keywords as synonyms for operators
-fno-pch-codegenDo not generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
-fno-pch-debuginfoDo not generate debug info for types in an object file built from this PCH and do not generate them elsewhere
-fno-pltUse GOT indirection instead of PLT to make external function calls (x86 only)
-fno-preserve-as-commentsDo not preserve comments in inline assembly
-fno-profile-generateDisable generation of profile instrumentation
-fno-profile-instr-generateDisable generation of profile instrumentation
-fno-profile-instr-useDisable using instrumentation data for profile-guided optimization
-fno-ptrauth-abi-versionDisable Pointer Authentication ABI versioning
-fno-ptrauth-kernel-abi-versionDisable Pointer Authentication kernel ABI versioning
-fno-register-global-dtors-with-atexitDon't use atexit or __cxa_atexit to register global destructors
-fno-reroll-loops
-fno-rewrite-imports
-fno-rewrite-includes
-fno-ropi
-fno-rtlib-add-rpathDo not add -rpath with architecture-specific resource directory to the linker flags
-fno-rtti-dataDisable generation of RTTI data
-fno-rttiDisable generation of rtti information
-fno-rwpi
-fno-sanitize-address-poison-custom-array-cookieDisable poisoning array cookies when using custom operator new[] in AddressSanitizer
-fno-sanitize-address-use-after-scopeDisable use-after-scope detection in AddressSanitizer
-fno-sanitize-address-use-odr-indicatorDisable ODR indicator globals
-fno-sanitize-blacklistDon't
-fno-sanitize-cfi-canonical-jump-tablesDo not make the jump table addresses canonical in the symbol table
-fno-sanitize-cfi-cross-dsoDisable control flow integrity (CFI) checks for cross-DSO calls
-fno-sanitize-coverage <command>Disable specified features of coverage instrumentation for Sanitizers
-fno-sanitize-memory-track-originsDisable origins tracking in MemorySanitizer
-fno-sanitize-memory-use-after-dtorDisable use-after-destroy detection in MemorySanitizer
-fno-sanitize-recover <command>Disable recovery for specified sanitizers
-fno-sanitize-statsDisable sanitizer statistics gathering
-fno-sanitize-thread-atomicsDisable atomic operations instrumentation in ThreadSanitizer
-fno-sanitize-thread-func-entry-exitDisable function entry/exit instrumentation in ThreadSanitizer
-fno-sanitize-thread-memory-accessDisable memory access instrumentation in ThreadSanitizer
-fno-sanitize-trap [command]Disable trapping for specified sanitizers
-fno-short-wcharForce wchar_t to be an unsigned int
-fno-show-columnDo not include column number on diagnostics
-fno-show-source-locationDo not include source location information with diagnostics
-fno-signed-charChar is unsigned
-fno-signed-zerosAllow optimizations that ignore the sign of floating point zeros
-fno-spell-checkingDisable spell-checking
-fno-split-lto-unit
-fno-stack-checkDisable stack checking
-fno-stack-clash-protectionDisable stack clash protection
-fno-stack-protectorDisable the use of stack protectors
-fno-stack-size-section
-fno-standalone-debugLimit debug information produced to reduce size of debug binary
-fno-strict-float-cast-overflowRelax language rules and try to match the behavior of the target's native float-to-int conversion instructions
-fno-strict-returnDon't treat control flow paths that fall off the end of a non-void function as unreachable
-fno-syclDisable SYCL kernels compilation for device
-fno-temp-fileDirectly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes
-fno-threadsafe-staticsDo
-fno-trigraphsDo not process trigraph sequences
-fno-unique-basic-block-section-names
-fno-unique-internal-linkage-names
-fno-unique-section-namesDon't use unique names for text and data sections
-fno-unroll-loopsTurn off loop unroller
-fno-use-cxa-atexitDon't use __cxa_atexit for calling destructors
-fno-use-init-arrayUse .ctors/.dtors instead of .init_array/.fini_array
-fno-use-line-directives
-fno-virtual-function-elimination
-fno-visibility-inlines-hidden-static-local-varDisables -fvisibility-inlines-hidden-static-local-var (this is the default on non-darwin targets)
-fno-whole-program-vtables
-fno-xray-always-emit-customevents
-fno-xray-always-emit-typedevents
-fno-xray-function-indexOmit function index section at the expense of single-function patching performance
-fno-xray-ignore-loops
-fno-xray-instrument
-fno-zero-initialized-in-bssDon't place zero initialized data in BSS
-fno-zvector
-fobjc-arc-exceptionsUse EH-safe code when synthesizing retains and releases in -fobjc-arc
-fobjc-arcSynthesize retain and release calls for Objective-C pointers
-fobjc-exceptionsEnable Objective-C exceptions
-fobjc-relative-method-listsEnable relative method lists
-fobjc-runtime <command>Specify the target Objective-C runtime kind and version
-fobjc-weakEnable ARC-style weak references in Objective-C
-fopenmp-simdEmit OpenMP code only for SIMD-based constructs
-fopenmp-targets <command>Specify comma-separated list of triples OpenMP offloading targets to be supported
-fopenmpParse OpenMP pragmas and generate parallel code
-foptimization-record-file <command>Specify the output name of the file containing the optimization remarks. Implies -fsave-optimization-record. On Darwin platforms, this cannot be used with multiple -arch <arch> options
-foptimization-record-passes <command>Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
-forder-file-instrumentationGenerate instrumented code to collect order file into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)
-fpack-struct <command>Specify the default maximum struct packing alignment
-fpascal-stringsRecognize and construct Pascal-style string literals
-fpass-plugin <command>Load pass plugin from a dynamic shared object file (only with new pass manager)
-fpatchable-function-entry <command>Generate M NOPs before function entry and N-M NOPs after function entry
-fpcc-struct-returnOverride the default ABI to return all structs on the stack
-fpch-codegenGenerate code for uses of this PCH that assumes an explicit object file will be built for the PCH
-fpch-debuginfoGenerate debug info for types in an object file built from this PCH and do not generate them elsewhere
-fpch-instantiate-templatesInstantiate templates already while building a PCH
-fpch-validate-input-files-contentValidate PCH input files based on content if mtime differs
-fplt
-fplugin <command>Load the named plugin (dynamic shared object)
-fprebuilt-module-path <command>Specify the prebuilt module path
-fpreserve-as-comments
-fprofile-exclude-files <command>Instrument only functions from files where names don't match all the regexes separated by a semi-colon
-fprofile-filter-files <command>Instrument only functions from files where names match any regex separated by a semi-colon
-fprofile-generate [command]Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)
-fprofile-instr-generate [command]Generate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var)
-fprofile-instr-use <command>Use instrumentation data for profile-guided optimization
-fprofile-remapping-file <command>Use the remappings described in <file> to match the profile data against names in the program
-fprofile-sample-accurateSpecifies that the sample profile is accurate
-fprofile-sample-use <command>Enable sample-based profile guided optimizations
-fprofile-use <command>Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>
-fptrauth-abi-version <command>Pointer Authentication ABI version
-fptrauth-auth-trapsEnable traps on authentication failures
-fptrauth-block-descriptor-pointersEnable signing block descriptors
-fptrauth-callsEnable signing and authentication of all indirect calls
-fptrauth-function-pointer-type-discriminationEnabling type discrimination on C function pointers
-fptrauth-indirect-gotosEnable signing and authentication of indirect goto targets
-fptrauth-intrinsicsEnable pointer-authentication intrinsics
-fptrauth-kernel-abi-versionEnable Pointer Authentication kernel ABI version
-fptrauth-objc-isa-maskingPre- and post-authentication masking mode of objective-c isa pointers
-fptrauth-objc-isa-mode <command>Authentication mode for ObjC isa field. Full auth if unspecified
-fptrauth-objc-isaEnable signing and authentication of Objective-C object's 'isa' field
-fptrauth-returnsEnable signing and authentication of return addresses
-fptrauth-softEnable software lowering of pointer authentication
-fptrauth-vtable-pointer-address-discriminationEnable address discrimination of vtable pointers
-fptrauth-vtable-pointer-type-discriminationEnable type discrimination of vtable pointers
-freciprocal-mathAllow division operations to be reassociated
-freg-struct-returnOverride the default ABI to return small structs in registers
-fregister-global-dtors-with-atexitUse atexit or __cxa_atexit to register global destructors
-frelaxed-template-template-argsEnable C++17 relaxed template template argument matching
-freroll-loopsTurn on loop reroller
-frewrite-imports
-frewrite-includes
-fropiGenerate read-only position independent code (ARM only)
-frtlib-add-rpathAdd -rpath with architecture-specific resource directory to the linker flags
-frtti-data
-frtti
-frwpiGenerate read-write position independent code (ARM only)
-fsanitize-address-field-padding <command>Level of field padding for AddressSanitizer
-fsanitize-address-globals-dead-strippingEnable linker dead stripping of globals in AddressSanitizer
-fsanitize-address-poison-custom-array-cookieEnable poisoning array cookies when using custom operator new[] in AddressSanitizer
-fsanitize-address-use-after-scopeEnable use-after-scope detection in AddressSanitizer
-fsanitize-address-use-odr-indicatorEnable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size
-fsanitize-blacklist <command>Path to blacklist file for sanitizers
-fsanitize-cfi-canonical-jump-tablesMake the jump table addresses canonical in the symbol table
-fsanitize-cfi-cross-dsoEnable control flow integrity (CFI) checks for cross-DSO calls
-fsanitize-cfi-icall-generalize-pointersGeneralize pointers in CFI indirect call type signature checks
-fsanitize-coverage-allowlist <command>Restrict sanitizer coverage instrumentation exclusively to modules and functions that match the provided special case list, except the blocked ones
-fsanitize-coverage-blacklist <command>Deprecated, use -fsanitize-coverage-blocklist= instead
-fsanitize-coverage-blocklist <command>Disable sanitizer coverage instrumentation for modules and functions that match the provided special case list, even the allowed ones
-fsanitize-coverage-whitelist <command>Deprecated, use -fsanitize-coverage-allowlist= instead
-fsanitize-coverage <command>Specify the type of coverage instrumentation for Sanitizers
-fsanitize-hwaddress-abi <command>Select the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor). This option is currently unused
-fsanitize-memory-track-origins [command]Enable origins tracking in MemorySanitizer
-fsanitize-memory-use-after-dtorEnable use-after-destroy detection in MemorySanitizer
-fsanitize-recover <command>Enable recovery for specified sanitizers
-fsanitize-statsEnable sanitizer statistics gathering
-fsanitize-system-blacklist <command>Path to system blacklist file for sanitizers
-fsanitize-thread-atomicsEnable atomic operations instrumentation in ThreadSanitizer (default)
-fsanitize-thread-func-entry-exitEnable function entry/exit instrumentation in ThreadSanitizer (default)
-fsanitize-thread-memory-accessEnable memory access instrumentation in ThreadSanitizer (default)
-fsanitize-trap <command>Enable trapping for sanitizers
-fsanitize-undefined-strip-path-components <command>Strip (or keep only, if negative) a given number of path components when emitting check metadata
-fsanitize <command>Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
-fsave-optimization-record [command]Generate an optimization record file in a specific format
-fseh-exceptionsUse SEH style exceptions
-fshort-enumsAllocate to an enum type only as many bytes as it needs for the declared range of possible values
-fshort-wcharForce wchar_t to be a short unsigned int
-fshow-column
-fshow-overloads <command>Which overload candidates to show when overload resolution fails: best|all; defaults to all
-fsigned-charChar is signed
-fsized-deallocationEnable C++14 sized global deallocation functions
-fsjlj-exceptionsUse SjLj style exceptions
-fslp-vectorizeEnable the superword-level parallelism vectorization passes
-fsmall-block-descriptorsEnable small block descriptors
-fsplit-dwarf-inliningProvide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF
-fsplit-lto-unitEnables splitting of the LTO unit
-fstack-checkEnable stack checking
-fstack-clash-protectionEnable stack clash protection
-fstack-protector-allEnable stack protectors for all functions
-fstack-protector-strongEnable stack protectors for some functions vulnerable to stack smashing. Compared to -fstack-protector, this uses a stronger heuristic that includes functions containing arrays of any size (and any type), as well as any calls to alloca or the taking of an address from a local variable
-fstack-protectorEnable stack protectors for some functions vulnerable to stack smashing. This uses a loose heuristic which considers functions vulnerable if they contain a char (or 8bit integer) array or constant sized calls to alloca, which are of greater size than ssp-buffer-size (default: 8 bytes). All variable sized calls to alloca are considered vulnerable
-fstack-size-sectionEmit section containing metadata on function stack sizes
-fstandalone-debugEmit full debug info for all types used by the program
-fstrict-enumsEnable optimizations based on the strict definition of an enum's value range
-fstrict-float-cast-overflowAssume that overflowing float-to-int casts are undefined (default)
-fstrict-return
-fstrict-vtable-pointersEnable optimizations based on the strict rules for overwriting polymorphic C++ objects
-fsyclEnable SYCL kernels compilation for device
-fsystem-moduleBuild this module as a system module. Only used with -emit-module
-ftarget-variant-availability-checksEnable availability checks for the target variant platform
-fthin-link-bitcode <command>Write minimized bitcode to <file> for the ThinLTO thin link only
-fthinlto-index <command>Perform ThinLTO importing using provided function summary index
-ftime-trace-granularity <command>Minimum time granularity (in microseconds) traced by time profiler
-ftime-traceTurn on time profiler. Generates JSON file based on output filename
-ftrap-function <command>Issue call to specified function rather than a trap instruction
-ftrapv-handler <command>Specify the function to be called on overflow
-ftrapvTrap on integer overflow
-ftrigraphsProcess trigraph sequences
-ftrivial-auto-var-init-stop-after <command>Stop initializing trivial automatic stack variables after the specified number of instances
-ftrivial-auto-var-init <command>Initialize trivial automatic stack variables
-funique-basic-block-section-namesUse unique names for basic block sections (ELF Only)
-funique-internal-linkage-namesUniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path
-funique-section-names
-funroll-loopsTurn on loop unroller
-fuse-init-array
-fuse-line-directivesUse #line in preprocessed output
-fvalidate-ast-input-files-contentCompute and store the hash of input files used to build an AST. Files with mismatching mtime's are considered valid if both contents is identical
-fveclib <command>Use the given vector functions library
-fvectorizeEnable the loop vectorization passes
-fverbose-asmGenerate verbose assembly output
-fvirtual-function-eliminationEnables dead virtual function elimination optimization. Requires -flto=full
-fvisibility-global-new-delete-hiddenGive global C++ operator new and delete declarations hidden visibility
-fvisibility-inlines-hidden-static-local-varWhen -fvisibility-inlines-hidden is enabled, static variables in inline C++ member functions will also be given hidden visibility by default
-fvisibility-inlines-hiddenGive inline C++ member functions hidden visibility by default
-fvisibility-ms-compatGive global types 'default' visibility and global functions and variables 'hidden' visibility by default
-fvisibility <command>Set the default symbol visibility for all global declarations
-fwasm-exceptionsUse WebAssembly style exceptions
-fwhole-program-vtablesEnables
-fwrapvTreat signed integer overflow as two's complement
-fwritable-stringsStore string literals as writable data
-fxray-always-emit-customeventsAlways emit __xray_customevent(...) calls even if the containing function is not always instrumented
-fxray-always-emit-typedeventsAlways emit __xray_typedevent(...) calls even if the containing function is not always instrumented
-fxray-always-instrument <command>DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute
-fxray-attr-list <command>Filename defining the list of functions/types for imbuing XRay attributes
-fxray-function-index
-fxray-ignore-loopsDon't instrument functions with loops unless they also meet the minimum function size
-fxray-instruction-threshold <command>Sets the minimum function size to instrument with XRay
'function' includes both 'function-entry' and 'function-exit'. <command>Select which XRay instrumentation points to emit. Options: all, none, function-entry, function-exit, function, custom. Default is 'all'
-fxray-instrumentGenerate XRay instrumentation sleds on function entry and exit
-fxray-link-depsTells clang to add the link dependencies for XRay
-fxray-modes <command>List of modes to link in by default into XRay instrumented binaries
-fxray-never-instrument <command>DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute
-fzero-initialized-in-bss
-fzvectorEnable System z vector language extension
-F <command>Add directory to framework include search path
--gcc-toolchain <command>Use the gcc toolchain at the given directory
-gcodeview-ghashEmit type record hashes in a .debug$H section
-gcodeviewGenerate CodeView debug information
-gdwarf-2Generate source-level debug information with dwarf version 2
-gdwarf-3Generate source-level debug information with dwarf version 3
-gdwarf-4Generate source-level debug information with dwarf version 4
-gdwarf-5Generate source-level debug information with dwarf version 5
-gdwarfGenerate source-level debug information with the default dwarf version
-gembed-sourceEmbed source text in DWARF debug sections
-gline-directives-onlyEmit debug line info directives only
-gline-tables-onlyEmit debug line number tables only
-gmodulesGenerate debug info with external references to clang modules or precompiled headers
-gno-embed-sourceRestore the default behavior of not embedding source text in DWARF debug sections
-gno-inline-line-tablesDon't
--gpu-max-threads-per-block <command>Default max threads per block for kernel launch bounds for HIP
-gsplit-dwarf <command>Set DWARF fission mode to either 'split' or 'single'
-gz [command]DWARF debug sections compression type
-G <command>Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
-gGenerate source-level debug information
--help-hiddenDisplay help for hidden options
-helpDisplay available options
--hip-device-lib <command>HIP device library
--hip-linkLink clang-offload-bundler bundles for HIP
--hip-version <command>HIP version in the format of major.minor.patch
-HShow header includes and nesting depth
-I-Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
-iapinotes-modules <command>Add directory to the API notes search path referenced by module name
-ibuiltinincEnable builtin #include directories even when -nostdinc is used before or after -ibuiltininc. Using -nobuiltininc after the option disables it
-idirafter <command>Add directory to AFTER include search path
-iframeworkwithsysroot <command>Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
-iframework <command>Add directory to SYSTEM framework search path
-imacros <command>Include macros from file before parsing
-include-pch <command>Include precompiled header file
-include <command>Include file before parsing
-index-header-mapMake the next included directory (-I or -F) an indexer header map
-index-ignore-system-symbolsIgnore symbols from system headers
-index-record-codegen-nameRecord the codegen name for symbols
-index-store-path <command>Enable indexing with the specified data store path
-iprefix <command>Set the -iwithprefix/-iwithprefixbefore prefix
-iquote <command>Add directory to QUOTE include search path
-isysroot <command>Set the system root directory (usually /)
-isystem-after <command>Add directory to end of the SYSTEM include search path
-isystem <command>Add directory to SYSTEM include search path
-ivfsoverlay <command>Overlay the virtual filesystem described by file over the real file system
-iwithprefixbefore <command>Set directory to include search path with prefix
-iwithprefix <command>Set directory to SYSTEM include search path with prefix
-iwithsysroot <command>Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
-I <command>Add directory to include search path
--libomptarget-nvptx-path <command>Path to libomptarget-nvptx libraries
-L <command>Add directory to library search path
-mabicallsEnable SVR4-style position-independent code (Mips only)
-maix-struct-returnReturn all structs in memory (PPC32 only)
-malign-branch-boundary <command>Specify the boundary's size to align branches
-malign-branch <command>Specify types of branches to align
-malign-doubleAlign doubles to two words in structs (x86 only)
-mbackchainLink stack frames through backchain on System Z
-mbranch-protection <command>Enforce targets of indirect branches and function returns
-mbranches-within-32B-boundariesAlign selected branches (fused, jcc, jmp) within 32-byte boundary
-mcmodel [command]Equivalent to -mcmodel=medium, compatible with RISC-V gcc
-mcmseAllow use of CMSE (Armv8-M Security Extensions)
-mcode-object-v3Enable code object v3 (AMDGPU only)
-mcrcAllow use of CRC instructions (ARM/Mips only)
-mcumodeCU wavefront execution mode is used (AMDGPU only)
-mdouble <command>Force double to be 32 bits or 64 bits
-MDWrite a depfile containing user and system headers
-meabi <command>Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
-membedded-dataPlace constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
-menable-experimental-extensionsEnable use of experimental RISC-V extensions
-mexec-model <command>Execution model (WebAssembly only)
-mexecute-onlyDisallow generation of data access to code sections (ARM only)
-mextern-sdataAssume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
-mfentryInsert calls to fentry at function entry (x86/SystemZ only)
-mfix-cortex-a53-835769Workaround
-mfp32Use 32-bit floating point registers (MIPS only)
-mfp64Use 64-bit floating point registers (MIPS only)
-MF <command>Write depfile output from -MMD, -MD, -MM, or -M to <file>
-mgeneral-regs-onlyGenerate code which only uses the general purpose registers (AArch64 only)
-mglobal-mergeEnable merging of globals
-mgpoptUse GP relative accesses for symbols known to be in a small data section (MIPS)
-MGAdd missing headers to depfile
-mharden-sls <command>Select straight-line speculation hardening scope
-mhvx-length <command>Set Hexagon Vector Length
-mhvx [command]Enable Hexagon Vector eXtensions
-miamcuUse Intel MCU ABI
--migrateRun the migrator
-mincremental-linker-compatible(integrated-as) Emit an object file which can be used with an incremental linker
-mindirect-jump <command>Change indirect jump instructions to inhibit speculation
-mios-version-min <command>Set iOS deployment target
-MJ <command>Write a compilation database entry per input
-mllvm <command>Additional arguments to forward to LLVM's option processing
-mlocal-sdataExtend the -G behaviour to object local data (MIPS)
-mlong-callsGenerate branches with extended addressability, usually via indirect jumps
-mlong-double-128Force long double to be 128 bits
-mlong-double-64Force long double to be 64 bits
-mlong-double-80Force long double to be 80 bits, padded to 128 bits for storage
-mlvi-cfiEnable only control-flow mitigations for Load Value Injection (LVI)
-mlvi-hardeningEnable all mitigations for Load Value Injection (LVI)
-mmacosx-version-min <command>Set Mac OS X deployment target
-mmadd4Enable the generation of 4-operand madd.s, madd.d and related instructions
-MMDWrite a depfile containing user headers
-mmemopsEnable generation of memop instructions
-mms-bitfieldsSet the default structure layout to be compatible with the Microsoft compiler standard
-mmsaEnable MSA ASE (MIPS only)
-mmtEnable MT ASE (MIPS only)
-MMLike -MMD, but also implies -E and writes to stdout by default
-mno-abicallsDisable SVR4-style position-independent code (Mips only)
-mno-code-object-v3Disable code object v3 (AMDGPU only)
-mno-crcDisallow use of CRC instructions (Mips only)
-mno-cumodeWGP wavefront execution mode is used (AMDGPU only)
-mno-embedded-dataDo not place constants in the .rodata section instead of the .sdata if they meet the -G <size> threshold (MIPS)
-mno-execute-onlyAllow generation of data access to code sections (ARM only)
-mno-extern-sdataDo not assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
-mno-fix-cortex-a53-835769Don't workaround Cortex-A53 erratum 835769 (AArch64 only)
-mno-global-mergeDisable merging of globals
-mno-gpoptDo not use GP relative accesses for symbols known to be in a small data section (MIPS)
-mno-hvxDisable Hexagon Vector eXtensions
-mno-implicit-floatDon't generate implicit floating point instructions
-mno-incremental-linker-compatible(integrated-as) Emit an object file which cannot be used with an incremental linker
-mno-local-sdataDo not extend the -G behaviour to object local data (MIPS)
-mno-long-callsRestore the default behaviour of not generating long calls
-mno-lvi-cfiDisable control-flow mitigations for Load Value Injection (LVI)
-mno-lvi-hardeningDisable mitigations for Load Value Injection (LVI)
-mno-madd4Disable the generation of 4-operand madd.s, madd.d and related instructions
-mno-memopsDisable generation of memop instructions
-mno-movtDisallow use of movt/movw pairs (ARM only)
-mno-ms-bitfieldsDo not set the default structure layout to be compatible with the Microsoft compiler standard
-mno-msaDisable MSA ASE (MIPS only)
-mno-mtDisable MT ASE (MIPS only)
-mno-neg-immediatesDisallow converting instructions with negative immediates to their negation or inversion
-mno-nvjDisable generation of new-value jumps
-mno-nvsDisable generation of new-value stores
-mno-outlineDisable function outlining (AArch64 only)
-mno-packetsDisable generation of instruction packets
-mno-relaxDisable linker relaxation
-mno-restrict-itAllow generation of deprecated IT blocks for ARMv8. It is off by default for ARMv8 Thumb mode
-mno-save-restoreDisable using library calls for save and restore
-mno-sesesDisable speculative execution side effect suppression (SESES)
-mno-sram-eccDisable SRAM ECC (AMDGPU only)
-mno-stack-arg-probeDisable stack probes which are enabled by default
-mno-tls-direct-seg-refsDisable direct TLS access through segment registers
-mno-unaligned-accessForce all memory accesses to be aligned (AArch32/AArch64 only)
-mno-wavefrontsize64Wavefront size 32 is used
-mno-xnackDisable XNACK (AMDGPU only)
-mnocrcDisallow use of CRC instructions (ARM only)
-mnop-mcountGenerate mcount/__fentry__ calls as nops. To activate they need to be patched in
-mnvjEnable generation of new-value jumps
-mnvsEnable generation of new-value stores
-module-dependency-dir <command>Directory to dump module dependencies to
-module-file-infoProvide information about a particular module file
-momit-leaf-frame-pointerOmit frame pointer setup for leaf functions
-moutlineEnable function outlining (AArch64 only)
-mpacked-stackUse packed stack layout (SystemZ only)
-mpacketsEnable generation of instruction packets
-mpad-max-prefix-size <command>Specify maximum number of prefixes to use for padding
-mpie-copy-relocationsUse copy relocations support for PIE builds
-mprefer-vector-width <command>Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions
-MPCreate phony target for each dependency (other than main file)
-mqdsp6-compatEnable hexagon-qdsp6 backward compatibility
-MQ <command>Specify name of main file output to quote in depfile
-mrecord-mcountGenerate a __mcount_loc section entry for each __fentry__ call
-mrelax-all(integrated-as) Relax all machine instructions
-mrelaxEnable linker relaxation
-mrestrict-itDisallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode
-mrtdMake StdCall calling convention the default
-msave-restoreEnable using library calls for save and restore
-msesesEnable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
-msign-return-address <command>Select return address signing scope
-msmall-data-limit <command>Put global and static data smaller than the limit into a special section
-msoft-floatUse software floating point
-msram-eccEnable SRAM ECC (AMDGPU only)
-mstack-alignment <command>Set the stack alignment
-mstack-arg-probeEnable stack probes
-mstack-probe-size <command>Set the stack probe size
-mstackrealignForce realign the stack at entry to every function
-msvr4-struct-returnReturn small structs in registers (PPC32 only)
-mthread-model <command>The thread model to use, e.g. posix, single (posix by default)
-mtls-direct-seg-refsEnable direct TLS access through segment registers (default)
-mtls-size <command>Specify bit size of immediate TLS offsets (AArch64 ELF only): 12 (for 4KB) | 24 (for 16MB, default) | 32 (for 4GB) | 48 (for 256TB, needs -mcmodel=large)
-mtp <command>Thread pointer access method (AArch32/AArch64 only)
-mtune <command>Accepted for compatibility with GCC. Currently has no effect
-MT <command>Specify name of main file output in depfile
-munaligned-accessAllow memory accesses to be unaligned (AArch32/AArch64 only)
-MVUse NMake/Jom format for the depfile
-mwavefrontsize64Wavefront size 64 is used
-mxnackEnable XNACK (AMDGPU only)
-MLike -MD, but also implies -E and writes to stdout by default
--no-cuda-include-ptx <command...>Do not include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once
--no-cuda-version-checkDon't
--no-offload-arch <command>Remove CUDA/HIP offloading device architecture (e.g. sm_35, gfx906) from the list of devices to compile for. 'all' resets the list to its default value
--no-system-header-prefix <command>Treat all #include paths starting with <prefix> as not including a system header
-nobuiltinincDisable builtin #include directories
-nogpulibDo not link device library for CUDA/HIP device compilation
-nostdinc++Disable standard #include directories for the C++ standard library
-ObjC++Treat source input files as Objective-C++ inputs
-objcmt-atomic-propertyMake
-objcmt-migrate-allEnable migration to modern ObjC
-objcmt-migrate-annotationEnable migration to property and method annotations
-objcmt-migrate-designated-initEnable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods
-objcmt-migrate-instancetypeEnable migration to infer instancetype for method result type
-objcmt-migrate-literalsEnable migration to modern ObjC literals
-objcmt-migrate-ns-macrosEnable migration to NS_ENUM/NS_OPTIONS macros
-objcmt-migrate-property-dot-syntaxEnable migration of setter/getter messages to property-dot syntax
-objcmt-migrate-propertyEnable migration to modern ObjC property
-objcmt-migrate-protocol-conformanceEnable migration to add protocol conformance on classes
-objcmt-migrate-readonly-propertyEnable migration to modern ObjC readonly property
-objcmt-migrate-readwrite-propertyEnable migration to modern ObjC readwrite property
-objcmt-migrate-subscriptingEnable migration to modern ObjC subscripting
-objcmt-ns-nonatomic-iosonlyEnable migration to use NS_NONATOMIC_IOSONLY macro for setting property's 'atomic' attribute
-objcmt-returns-innerpointer-propertyEnable migration to annotate property with NS_RETURNS_INNER_POINTER
-objcmt-whitelist-dir-path <command>Only modify files with a filename contained in the provided directory path
-ObjCTreat source input files as Objective-C inputs
-o <command>Write output to <file>
-pgEnable mcount instrumentation
-pipeUse pipes between commands, when possible
--precompileOnly precompile the input
-print-effective-triplePrint
-print-file-name <command>Print the full library path
-print-ivar-layoutEnable Objective-C Ivar layout bitmap print trace
-print-libgcc-file-namePrint
-print-prog-name <command>Print the full program path of <name>
-print-resource-dirPrint the resource directory pathname
-print-search-dirsPrint the paths used for finding libraries and programs
-print-supported-cpusPrint supported cpu models for the given target (if target is not specified, it will print the supported cpus for the default target)
-print-target-triplePrint the normalized target triple
-print-targetsPrint the registered targets
-pthreadSupport POSIX threads in generated code
--ptxas-path <command>Path to ptxas (used for compiling CUDA code)
-PDisable linemarker output in -E mode
-QnDo not emit metadata containing compiler name and version
-Qunused-argumentsDon't emit warning for unused driver arguments
-QyEmit metadata containing compiler name and version
-relocatable-pchWhether to build a relocatable precompiled header
-rewrite-legacy-objcRewrite Legacy Objective-C source to C++
-rewrite-objcRewrite Objective-C source to C++
--rocm-device-lib-path <command>ROCm device library path. Alternative to rocm-path
--rocm-path <command>ROCm installation path, used for finding and automatically linking required bitcode libraries
-Rpass-analysis <command>Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
-Rpass-missed <command>Report missed transformations by optimization passes whose name matches the given POSIX regular expression
-Rpass <command>Report transformations performed by optimization passes whose name matches the given POSIX regular expression
-rtlib <command>Compiler runtime library to use
-R <command>Enable the specified remark
-save-stats [command]Save llvm statistics
-save-temps [command]Save intermediate compilation results
-serialize-diagnostics <command>Serialize compiler diagnostics to a file
-shared-libsanDynamically link the sanitizer runtime
-static-libsanStatically link the sanitizer runtime
-static-openmpUse the static host OpenMP runtime while linking
-std <command>Language standard to compile for
-stdlib++-isystem <command>Use directory as the C++ standard library include path
-stdlib <command>C++ standard library to use
-sycl-std <command>SYCL language standard to compile for
--system-header-prefix <command>Treat all #include paths starting with <prefix> as including a system header
-SOnly run preprocess and compilation steps
-target-variant <command>Generate code that may run on a particular variant of the deployment target
--target <command>Generate code for the given target
-Tbss <command>Set starting address of BSS to <addr>
-Tdata <command>Set starting address of DATA to <addr>
-timeTime individual commands
-traditional-cppEnable some traditional CPP emulation
-trigraphsProcess trigraph sequences
-Ttext <command>Set starting address of TEXT to <addr>
-T <command>Specify <script> as linker script
-undefUndef all system defines
-unwindlib <command>Unwind library to use
-U <command>Undefine macro <macro>
--verify-debug-infoVerify the binary representation of debug output
-verify-pchLoad and verify that a pre-compiled header file is not stale
--versionPrint version information
-vShow commands to run and use verbose output
-WdeprecatedEnable warnings for deprecated constructs and define __DEPRECATED
-working-directory <command...>Resolve file paths relative to the specified directory
-wSuppress all warnings
-Xanalyzer <command>Pass <arg> to the static analyzer
-Xarch_device <command>Pass <arg> to the CUDA/HIP device compilation
-Xarch_host <command>Pass <arg> to the CUDA/HIP host compilation
-Xassembler <command>Pass <arg> to the assembler
-Xclang <command>Pass <arg> to the clang compiler
-Xcuda-fatbinary <command>Pass <arg> to fatbinary invocation
-Xcuda-ptxas <command>Pass <arg> to the ptxas assembler
-Xlinker <command>Pass <arg> to the linker
-Xopenmp-target [command]Pass <arg> to the target offloading toolchain identified by <triple>
-Xpreprocessor <command>Pass <arg> to the preprocessor
-x <command>Treat subsequent input files as having type <language>
-z <command>Pass -z <arg> to the linker