HIP: Heterogenous-computing Interface for Portability
Support of Clang options

Clang versiion: clang version 9.0.0 (https://github.com/llvm-mirror/clang.git 50988b3ea26e892a74a2848e5a06b96f2472a05c) (https://github.com/RadeonOpenCompute/llvm.git 6483275d3d7603784c30e08927f2b315dfb95639)

OptionSupportDescription
-###SupportedPrint (but do not run) the commands to run for this compilation
--analyzer-output <value>SupportedStatic analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|text).
--analyzeSupportedRun the static analyzer
-arcmt-migrate-emit-errorsUnsupportedEmit ARC errors even if the migrator can fix them
-arcmt-migrate-report-output <value>UnsupportedOutput path for the plist report
-B <dir>SupportedAdd <dir> to search path for binaries and object files used implicitly
-CCSupportedInclude comments from within macros in preprocessed output
-cfguardSupportedEmit tables required for Windows Control Flow Guard.
-cl-denorms-are-zeroSupportedOpenCL only. Allow denormals to be flushed to zero.
-cl-fast-relaxed-mathSupportedOpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__.
-cl-finite-math-onlySupportedOpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
-cl-fp32-correctly-rounded-divide-sqrtSupportedOpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
-cl-kernel-arg-infoSupportedOpenCL only. Generate kernel argument metadata.
-cl-mad-enableSupportedOpenCL only. Allow use of less precise MAD computations in the generated binary.
-cl-no-signed-zerosSupportedOpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
-cl-opt-disableSupportedOpenCL only. This option disables all optimizations. By default optimizations are enabled.
-cl-single-precision-constantSupportedOpenCL only. Treat double precision floating-point constant as single precision constant.
-cl-std=<value>SupportedOpenCL language standard to compile for.
-cl-strict-aliasingSupportedOpenCL only. This option is added for compatibility with OpenCL 1.0.
-cl-uniform-work-group-sizeSupportedOpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
-cl-unsafe-math-optimizationsSupportedOpenCL only. Allow unsafe floating-point optimizations. Also implies -cl-no-signed-zeros and -cl-mad-enable.
--config <value>SupportedSpecifies configuration file
--cuda-compile-host-deviceSupportedCompile CUDA code for both host and device (default). Has no effect on non-CUDA compilations.
--cuda-device-onlySupportedCompile CUDA code for device only
--cuda-gpu-arch=<value>SupportedCUDA GPU architecture (e.g. sm_35). May be specified more than once.
--cuda-host-onlySupportedCompile CUDA code for host only. Has no effect on non-CUDA compilations.
--cuda-include-ptx=<value>Unsupported

`Include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once. <tr><td>–cuda-noopt-device-debug<td>Unsupported<td>Enable device-side debug info generation. Disables ptxas optimizations. <tr><td>–cuda-path-ignore-env<td>Unsupported<td>Ignore environment variables to detect CUDA installation <tr><td>–cuda-path=

<td>Unsupported<td>CUDA installation path <tr><td>-cxx-isystem <directory><td>Supported<td>Add directory to the C++ SYSTEM include search path <tr><td>-C<td>Supported<td>Include comments in preprocessed output <tr><td>-c<td>Supported<td>Only run preprocess, compile, and assemble steps <tr><td>-dD<td>Supported<td>Print macro definitions in -E mode in addition to normal output <tr><td>-dependency-dot

<td>Supported<td>Filename to write DOT-formatted header dependencies to <tr><td>-dependency-file

<td>Supported<td>Filename (or -) to write dependency output to <tr><td>-dI<td>Supported<td>Print include directives in -E mode in addition to normal output <tr><td>-dM<td>Supported<td>Print macro definitions in -E mode instead of normal output <tr><td>-D <macro><td>Supported<td>=

Define <macro> to

(or 1 if

omitted) <tr><td>-emit-ast<td>Supported<td>Emit Clang AST files for source inputs <tr><td>-emit-llvm<td>Supported<td>Use the LLVM representation for assembler and object files <tr><td>-enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang

<td>Supported<td>Trivial 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 <tr><td>-E<td><td>Only run the preprocessor <tr><td>-faddrsig<td>Supported<td>Emit an address-significance table <tr><td>-faligned-allocation<td>Supported<td>Enable C++17 aligned allocation functions <tr><td>-fallow-editor-placeholders<td>Supported<td>Treat editor placeholders as valid source code <tr><td>-fansi-escape-codes<td>Supported<td>Use ANSI escape codes for diagnostics <tr><td>-fapple-kext<td>Unsupported<td>Use Apple's kernel extensions ABI <tr><td>-fapple-pragma-pack<td>Unsupported<td>Enable Apple gcc-compatible #pragma pack handling <tr><td>-fapplication-extension<td>Unsupported<td>Restrict code to those available for App Extensions <tr><td>-fblocks<td>Supported<td>Enable the 'blocks' language feature <tr><td>-fborland-extensions<td>Unsupported<td>Accept non-standard constructs supported by the Borland compiler <tr><td>-fbuild-session-file=<file><td>Supported<td>Use the last modification time of <file> as the build session timestamp <tr><td>-fbuild-session-timestamp=<time since="" epoch="" in="" seconds>=""><td>Supported<td>Time when the current build session started <tr><td>-fbuiltin-module-map<td>Unsupported<td>Load the clang builtins module map file. <tr><td>-fc++-static-destructors<td>Supported<td>Enable C++ static destructor registration (the default) <tr><td>-fcall-saved-x10<td>Unsupported<td>Make the x10 register call-saved (AArch64 only) <tr><td>-fcall-saved-x11<td>Unsupported<td>Make the x11 register call-saved (AArch64 only) <tr><td>-fcall-saved-x12<td>Unsupported<td>Make the x12 register call-saved (AArch64 only) <tr><td>-fcall-saved-x13<td>Unsupported<td>Make the x13 register call-saved (AArch64 only) <tr><td>-fcall-saved-x14<td>Unsupported<td>Make the x14 register call-saved (AArch64 only) <tr><td>-fcall-saved-x15<td>Unsupported<td>Make the x15 register call-saved (AArch64 only) <tr><td>-fcall-saved-x18<td>Unsupported<td>Make the x18 register call-saved (AArch64 only) <tr><td>-fcall-saved-x8<td>Unsupported<td>Make the x8 register call-saved (AArch64 only) <tr><td>-fcall-saved-x9<td>Unsupported<td>Make the x9 register call-saved (AArch64 only) <tr><td>-fcf-protection=

<td>Unsupported<td>Instrument control-flow architecture protection. Options: return, branch, full, none. <tr><td>-fcf-protection<td>Unsupported<td>Enable cf-protection in 'full' mode <tr><td>-fchar8_t<td>Supported<td>Enable C++ builtin type char8_t <tr><td>-fclang-abi-compat=<version><td>Supported<td>Attempt to match the ABI of Clang <version> <tr><td>-fcolor-diagnostics<td>Supported<td>Use colors in diagnostics <tr><td>-fcomment-block-commands=<arg><td>Supported<td>Treat each comma separated argument in <arg> as a documentation comment block command <tr><td>-fcomplete-member-pointers<td>Supported<td>Require member pointer base types to be complete if they would be significant under the Microsoft ABI <tr><td>-fcoroutines-ts<td>Supported<td>Enable support for the C++ Coroutines TS <tr><td>-fcoverage-mapping<td>Unsupported<td>Generate coverage mapping to enable code coverage analysis <tr><td>-fcuda-approx-transcendentals<td>Unsupported<td>Use approximate transcendental functions <tr><td>-fcuda-flush-denormals-to-zero<td>Supported<td>Flush denormal floating point values to zero in CUDA device mode. <tr><td>-fcuda-short-ptr<td>Unsupported<td>Use 32-bit pointers for accessing const/local/shared address spaces. <tr><td>-fcxx-exceptions<td>Supported<td>Enable C++ exceptions <tr><td>-fdata-sections<td>Supported<td>Place each data in its own section (ELF Only) <tr><td>-fdebug-info-for-profiling<td>Supported<td>Emit extra debug info to make sample profile more accurate. <tr><td>-fdebug-macro<td>Supported<td>Emit macro debug information <tr><td>-fdebug-prefix-map=

<td>Supported<td>remap file source paths in debug info <tr><td>-fdebug-ranges-base-address<td>Supported<td>Use DWARF base address selection entries in debug_ranges <tr><td>-fdebug-types-section<td>Supported<td>Place debug types in their own section (ELF Only) <tr><td>-fdeclspec<td>Supported<td>Allow __declspec as a keyword <tr><td>-fdelayed-template-parsing<td>Supported<td>Parse templated function definitions at the end of the translation unit <tr><td>-fdelete-null-pointer-checks<td>Supported<td>Treat usage of null pointers as undefined behavior. <tr><td>-fdiagnostics-absolute-paths<td>Supported<td>Print absolute paths in diagnostics <tr><td>-fdiagnostics-hotness-threshold=<number><td>Unsupported<td>Prevent optimization remarks from being output if they do not have at least this profile count <tr><td>-fdiagnostics-parseable-fixits<td>Supported<td>Print fix-its in machine parseable form <tr><td>-fdiagnostics-print-source-range-info<td>Supported<td>Print source range spans in numeric form <tr><td>-fdiagnostics-show-hotness<td>Unsupported<td>Enable profile hotness information in diagnostic line <tr><td>-fdiagnostics-show-note-include-stack<td>Supported<td>Display include stacks for diagnostic notes <tr><td>-fdiagnostics-show-option<td>Supported<td>Print option name with mappable diagnostics <tr><td>-fdiagnostics-show-template-tree<td>Supported<td>Print a template comparison tree for differing templates <tr><td>-fdigraphs<td>Supported<td>Enable alternative token representations '<:', ':>', '<', '%>', '%:', '%:%:' (default) <tr><td>-fdiscard-value-names<td>Supported<td>Discard value names in LLVM IR <tr><td>-fdollars-in-identifiers<td>Supported<td>Allow '$' in identifiers <tr><td>-fdouble-square-bracket-attributes<td>Supported<td>Enable '[[]]' attributes in all C and C++ language modes <tr><td>-fdwarf-exceptions<td>Unsupported<td>Use DWARF style exceptions <tr><td>-fembed-bitcode-marker<td>Supported<td>Embed placeholder LLVM IR data as a marker <tr><td>-fembed-bitcode=<option><td>Supported<td>Embed LLVM bitcode (option: off, all, bitcode, marker) <tr><td>-fembed-bitcode<td>Supported<td>Embed LLVM IR bitcode as data <tr><td>-femit-all-decls<td>Supported<td>Emit all declarations, even if unused <tr><td>-femulated-tls<td>Supported<td>Use emutls functions to access thread_local variables <tr><td>-fexceptions<td>Supported<td>Enable support for exception handling <tr><td>-fexperimental-isel<td>Supported<td>Enables the experimental global instruction selector <tr><td>-fexperimental-new-pass-manager<td>Supported<td>Enables an experimental new pass manager in LLVM. <tr><td>-ffast-math<td>Supported<td>Allow aggressive, lossy floating-point optimizations <tr><td>-ffine-grained-bitfield-accesses<td>Supported<td>Use separate accesses for consecutive bitfield runs with legal widths and alignments. <tr><td>-ffixed-point<td>Supported<td>Enable fixed point types <tr><td>-ffixed-r19<td>Unsupported<td>Reserve register r19 (Hexagon only) <tr><td>-ffixed-r9<td>Unsupported<td>Reserve the r9 register (ARM only) <tr><td>-ffixed-x10<td>Unsupported<td>Reserve the 10 register (AArch64 only) <tr><td>-ffixed-x11<td>Unsupported<td>Reserve the 11 register (AArch64 only) <tr><td>-ffixed-x12<td>Unsupported<td>Reserve the 12 register (AArch64 only) <tr><td>-ffixed-x13<td>Unsupported<td>Reserve the 13 register (AArch64 only) <tr><td>-ffixed-x14<td>Unsupported<td>Reserve the 14 register (AArch64 only) <tr><td>-ffixed-x15<td>Unsupported<td>Reserve the 15 register (AArch64 only) <tr><td>-ffixed-x18<td>Unsupported<td>Reserve the 18 register (AArch64 only) <tr><td>-ffixed-x1<td>Unsupported<td>Reserve the 1 register (AArch64 only) <tr><td>-ffixed-x20<td>Unsupported<td>Reserve the 20 register (AArch64 only) <tr><td>-ffixed-x21<td>Unsupported<td>Reserve the 21 register (AArch64 only) <tr><td>-ffixed-x22<td>Unsupported<td>Reserve the 22 register (AArch64 only) <tr><td>-ffixed-x23<td>Unsupported<td>Reserve the 23 register (AArch64 only) <tr><td>-ffixed-x24<td>Unsupported<td>Reserve the 24 register (AArch64 only) <tr><td>-ffixed-x25<td>Unsupported<td>Reserve the 25 register (AArch64 only) <tr><td>-ffixed-x26<td>Unsupported<td>Reserve the 26 register (AArch64 only) <tr><td>-ffixed-x27<td>Unsupported<td>Reserve the 27 register (AArch64 only) <tr><td>-ffixed-x28<td>Unsupported<td>Reserve the 28 register (AArch64 only) <tr><td>-ffixed-x2<td>Unsupported<td>Reserve the 2 register (AArch64 only) <tr><td>-ffixed-x3<td>Unsupported<td>Reserve the 3 register (AArch64 only) <tr><td>-ffixed-x4<td>Unsupported<td>Reserve the 4 register (AArch64 only) <tr><td>-ffixed-x5<td>Unsupported<td>Reserve the 5 register (AArch64 only) <tr><td>-ffixed-x6<td>Unsupported<td>Reserve the 6 register (AArch64 only) <tr><td>-ffixed-x7<td>Unsupported<td>Reserve the 7 register (AArch64 only) <tr><td>-ffixed-x9<td>Unsupported<td>Reserve the 9 register (AArch64 only) <tr><td>-fforce-emit-vtables<td>Supported<td>Emits more virtual tables to improve devirtualization <tr><td>-fforce-enable-int128<td>Supported<td>Enable support for int128_t type <tr><td>-ffp-contract=

<td>Supported<td>Form fused FP ops (e.g. FMAs): fast (everywhere) | on (according to FP_CONTRACT pragma, default) | off (never fuse) <tr><td>-ffreestanding<td>Supported<td>Assert that the compilation takes place in a freestanding environment <tr><td>-ffunction-sections<td>Supported<td>Place each function in its own section (ELF Only) <tr><td>-fgnu-keywords<td>Supported<td>Allow GNU-extension keywords regardless of language standard <tr><td>-fgnu-runtime<td>Unsupported<td>Generate output compatible with the standard GNU Objective-C runtime <tr><td>-fgnu89-inline<td>Unsupported<td>Use the gnu89 inline semantics <tr><td>-fgpu-rdc<td>Supported<td>Generate relocatable device code, also known as separate compilation mode. <tr><td>-fimplicit-module-maps<td>Unsupported<td>Implicitly search the file system for module map files. <tr><td>-finline-functions<td>Supported<td>Inline suitable functions <tr><td>-finline-hint-functions<td>Supported<td>Inline functions which are (explicitly or implicitly) marked inline <tr><td>-finstrument-function-entry-bare<td>Unsupported<td>Instrument function entry only, after inlining, without arguments to the instrumentation call <tr><td>-finstrument-functions-after-inlining<td>Unsupported<td>Like -finstrument-functions, but insert the calls after inlining <tr><td>-finstrument-functions<td>Unsupported<td>Generate calls to instrument function entry and exit <tr><td>-fintegrated-as<td>Supported<td>Enable the integrated assembler <tr><td>-fkeep-static-consts<td>Supported<td>Keep static const variables even if unused <tr><td>-flto-jobs=

<td>Unsupported<td>Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected) <tr><td>-flto=

<td>Unsupported<td>Set LTO mode to either 'full' or 'thin' <tr><td>-flto<td>Unsupported<td>Enable LTO in 'full' mode <tr><td>-fmath-errno<td>Supported<td>Require math functions to indicate errors by setting errno <tr><td>-fmax-type-align=

<td>Supported<td>Specify the maximum alignment to enforce on pointers lacking an explicit alignment <tr><td>-fmerge-all-constants<td>Supported<td>Allow merging of constants <tr><td>-fmodule-file=[<name>=]<file><td>Unsupported<td>Specify the mapping of module name to precompiled module file, or load a module file if name is omitted. <tr><td>-fmodule-map-file=<file><td>Unsupported<td>Load this module map file <tr><td>-fmodule-name=<name><td>Unsupported<td>Specify the name of the module to build <tr><td>-fmodules-cache-path=<directory><td>Unsupported<td>Specify the module cache path <tr><td>-fmodules-decluse<td>Unsupported<td>Require declaration of modules used within a module <tr><td>-fmodules-disable-diagnostic-validation<td>Unsupported<td>Disable validation of the diagnostic options when loading the module <tr><td>-fmodules-ignore-macro=

<td>Unsupported<td>Ignore the definition of the given macro when building and loading modules <tr><td>-fmodules-prune-after=<seconds><td>Unsupported<td>Specify the interval (in seconds) after which a module file will be considered unused <tr><td>-fmodules-prune-interval=<seconds><td>Unsupported<td>Specify the interval (in seconds) between attempts to prune the module cache <tr><td>-fmodules-search-all<td>Unsupported<td>Search even non-imported modules to resolve references <tr><td>-fmodules-strict-decluse<td>Unsupported<td>Like -fmodules-decluse but requires all headers to be in modules <tr><td>-fmodules-ts<td>Unsupported<td>Enable support for the C++ Modules TS <tr><td>-fmodules-user-build-path <directory><td>Unsupported<td>Specify the module user build path <tr><td>-fmodules-validate-once-per-build-session<td>Unsupported<td>Don't verify input files for the modules if the module has been successfully validated or loaded during this build session <tr><td>-fmodules-validate-system-headers<td>Supported<td>Validate the system headers that a module depends on when loading the module <tr><td>-fmodules<td>Unsupported<td>Enable the 'modules' language feature <tr><td>-fms-compatibility-version=

<td>Supported<td>Dot-separated value representing the Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default)) <tr><td>-fms-compatibility<td>Supported<td>Enable full Microsoft Visual C++ compatibility <tr><td>-fms-extensions<td>Supported<td>Accept some non-standard constructs supported by the Microsoft compiler <tr><td>-fmsc-version=

<td>Supported<td>Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default)) <tr><td>-fnew-alignment=<align><td>Supported<td>Specifies the largest alignment guaranteed by '::operator new(size_t)' <tr><td>-fno-access-control<td>Supported<td>Disable C++ access control <tr><td>-fno-addrsig<td>Supported<td>Don't emit an address-significance table <tr><td>-fno-assume-sane-operator-new<td>Supported<td>Don't assume that C++'s global operator new can't alias any pointer <tr><td>-fno-autolink<td>Supported<td>Disable generation of linker directives for automatic library linking <tr><td>-fno-builtin-

<td>Supported<td>Disable implicit builtin knowledge of a specific function <tr><td>-fno-builtin<td>Supported<td>Disable implicit builtin knowledge of functions <tr><td>-fno-c++-static-destructors<td>Supported<td>Disable C++ static destructor registration <tr><td>-fno-char8_t<td>Supported<td>Disable C++ builtin type char8_t <tr><td>-fno-common<td>Supported<td>Compile common globals like normal definitions <tr><td>-fno-complete-member-pointers<td>Supported<td>Do not require member pointer base types to be complete if they would be significant under the Microsoft ABI <tr><td>-fno-constant-cfstrings<td>Supported<td>Disable creation of CodeFoundation-type constant strings <tr><td>-fno-coverage-mapping<td>Supported<td>Disable code coverage analysis <tr><td>-fno-crash-diagnostics<td>Supported<td>Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash <tr><td>-fno-debug-info-for-profiling<td>Supported<td>Do not emit extra debug info for sample profiler. <tr><td>-fno-debug-macro<td>Supported<td>Do not emit macro debug information <tr><td>-fno-declspec<td>Unsupported<td>Disallow __declspec as a keyword <tr><td>-fno-delayed-template-parsing<td>Supported<td>Disable delayed template parsing <tr><td>-fno-delete-null-pointer-checks<td>Supported<td>Do not treat usage of null pointers as undefined behavior. <tr><td>-fno-diagnostics-fixit-info<td>Supported<td>Do not include fixit information in diagnostics <tr><td>-fno-digraphs<td>Supported<td>Disallow alternative token representations '<:', ':>', '<', '%>', '%:', '%:%:' <tr><td>-fno-discard-value-names<td>Supported<td>Do not discard value names in LLVM IR <tr><td>-fno-dollars-in-identifiers<td>Supported<td>Disallow '$' in identifiers <tr><td>-fno-double-square-bracket-attributes<td>Supported<td>Disable '[[]]' attributes in all C and C++ language modes <tr><td>-fno-elide-constructors<td>Supported<td>Disable C++ copy constructor elision <tr><td>-fno-elide-type<td>Supported<td>Do not elide types when printing diagnostics <tr><td>-fno-experimental-isel<td>Supported<td>Disables the experimental global instruction selector <tr><td>-fno-experimental-new-pass-manager<td>Supported<td>Disables an experimental new pass manager in LLVM. <tr><td>-fno-fine-grained-bitfield-accesses<td>Supported<td>Use large-integer access for consecutive bitfield runs. <tr><td>-fno-fixed-point<td>Supported<td>Disable fixed point types <tr><td>-fno-force-enable-int128<td>Supported<td>Disable support for int128_t type <tr><td>-fno-gnu-inline-asm<td>Supported<td>Disable GNU style inline asm <tr><td>-fno-integrated-as<td>Supported<td>Disable the integrated assembler <tr><td>-fno-jump-tables<td>Supported<td>Do not use jump tables for lowering switches <tr><td>-fno-lax-vector-conversions<td>Supported<td>Disallow implicit conversions between vectors with a different number of elements or different element types <tr><td>-fno-lto<td>Supported<td>Disable LTO mode (default) <tr><td>-fno-merge-all-constants<td>Supported<td>Disallow merging of constants <tr><td>-fno-objc-infer-related-result-type<td>Supported<td>do not infer Objective-C related result type based on method family <tr><td>-fno-operator-names<td>Supported<td>Do not treat C++ operator name keywords as synonyms for operators <tr><td>-fno-plt<td>Supported<td>Do not use the PLT to make function calls <tr><td>-fno-preserve-as-comments<td>Supported<td>Do not preserve comments in inline assembly <tr><td>-fno-profile-generate<td>Supported<td>Disable generation of profile instrumentation. <tr><td>-fno-profile-instr-generate<td>Supported<td>Disable generation of profile instrumentation. <tr><td>-fno-profile-instr-use<td>Supported<td>Disable using instrumentation data for profile-guided optimization <tr><td>-fno-register-global-dtors-with-atexit<td>Supported<td>Don't use atexit or __cxa_atexit to register global destructors <tr><td>-fno-reroll-loops<td>Supported<td>Turn off loop reroller <tr><td>-fno-rtlib-add-rpath<td>Supported<td>Do not add -rpath with architecture-specific resource directory to the linker flags <tr><td>-fno-rtti-data<td>Supported<td>Control emission of RTTI data <tr><td>-fno-rtti<td>Supported<td>Disable generation of rtti information <tr><td>-fno-sanitize-address-poison-custom-array-cookie<td>Supported<td>Disable poisoning array cookies when using custom operator new[] in AddressSanitizer <tr><td>-fno-sanitize-address-use-after-scope<td>Supported<td>Disable use-after-scope detection in AddressSanitizer <tr><td>-fno-sanitize-address-use-odr-indicator<td>Supported<td>Disable ODR indicator globals <tr><td>-fno-sanitize-blacklist<td>Supported<td>Don't use blacklist file for sanitizers <tr><td>-fno-sanitize-cfi-cross-dso<td>Supported<td>Disable control flow integrity (CFI) checks for cross-DSO calls. <tr><td>-fno-sanitize-coverage=

<td>Supported<td>Disable specified features of coverage instrumentation for Sanitizers <tr><td>-fno-sanitize-memory-track-origins<td>Supported<td>Disable origins tracking in MemorySanitizer <tr><td>-fno-sanitize-memory-use-after-dtor<td>Supported<td>Disable use-after-destroy detection in MemorySanitizer <tr><td>-fno-sanitize-recover=

<td>Supported<td>Disable recovery for specified sanitizers <tr><td>-fno-sanitize-stats<td>Supported<td>Disable sanitizer statistics gathering. <tr><td>-fno-sanitize-thread-atomics<td>Supported<td>Disable atomic operations instrumentation in ThreadSanitizer <tr><td>-fno-sanitize-thread-func-entry-exit<td>Supported<td>Disable function entry/exit instrumentation in ThreadSanitizer <tr><td>-fno-sanitize-thread-memory-access<td>Supported<td>Disable memory access instrumentation in ThreadSanitizer <tr><td>-fno-sanitize-trap=

<td>Supported<td>Disable trapping for specified sanitizers <tr><td>-fno-short-wchar<td>Supported<td>Force wchar_t to be an unsigned int <tr><td>-fno-show-column<td>Supported<td>Do not include column number on diagnostics <tr><td>-fno-show-source-location<td>Supported<td>Do not include source location information with diagnostics <tr><td>-fno-signed-char<td>Supported<td>Char is unsigned <tr><td>-fno-signed-zeros<td>Supported<td>Allow optimizations that ignore the sign of floating point zeros <tr><td>-fno-spell-checking<td>Supported<td>Disable spell-checking <tr><td>-fno-stack-protector<td>Supported<td>Disable the use of stack protectors <tr><td>-fno-stack-size-section<td>Supported<td>Don't emit section containing metadata on function stack sizes <tr><td>-fno-standalone-debug<td>Supported<td>Limit debug information produced to reduce size of debug binary <tr><td>-fno-strict-float-cast-overflow<td>Supported<td>Relax language rules and try to match the behavior of the target's native float-to-int conversion instructions <tr><td>-fno-threadsafe-statics<td>Supported<td>Do not emit code to make initialization of local statics thread safe <tr><td>-fno-trigraphs<td>Supported<td>Do not process trigraph sequences <tr><td>-fno-unroll-loops<td>Supported<td>Turn off loop unroller <tr><td>-fno-use-cxa-atexit<td>Supported<td>Don't use __cxa_atexit for calling destructors <tr><td>-fno-use-init-array<td>Supported<td>Don't use .init_array instead of .ctors <tr><td>-fobjc-arc-exceptions<td>Unsupported<td>Use EH-safe code when synthesizing retains and releases in -fobjc-arc <tr><td>-fobjc-arc<td>Unsupported<td>Synthesize retain and release calls for Objective-C pointers <tr><td>-fobjc-exceptions<td>Unsupported<td>Enable Objective-C exceptions <tr><td>-fobjc-runtime=

<td>Unsupported<td>Specify the target Objective-C runtime kind and version <tr><td>-fobjc-weak<td>Unsupported<td>Enable ARC-style weak references in Objective-C <tr><td>-fopenmp-simd<td>Unsupported<td>Emit OpenMP code only for SIMD-based constructs. <tr><td>-fopenmp-targets=

<td>Unsupported<td>Specify comma-separated list of triples OpenMP offloading targets to be supported <tr><td>-fopenmp<td>Unsupported<td>Parse OpenMP pragmas and generate parallel code. <tr><td>-foptimization-record-file=

<td>Supported<td>Specify the file name of any generated YAML optimization record <tr><td>-fpack-struct=

<td>Unsupported<td>Specify the default maximum struct packing alignment <tr><td>-fpascal-strings<td>Supported<td>Recognize and construct Pascal-style string literals <tr><td>-fpass-plugin=<dsopath><td>Supported<td>Load pass plugin from a dynamic shared object file (only with new pass manager). <tr><td>-fpcc-struct-return<td>Unsupported<td>Override the default ABI to return all structs on the stack <tr><td>-fplt<td>Supported<td>Use the PLT to make function calls <tr><td>-fplugin=<dsopath><td>Supported<td>Load the named plugin (dynamic shared object) <tr><td>-fprebuilt-module-path=<directory><td>Unsupported<td>Specify the prebuilt module path <tr><td>-fprofile-exclude-files=

<td>Unsupported<td>Instrument only functions from files where names don't match all the regexes separated by a semi-colon <tr><td>-fprofile-filter-files=

<td>Unsupported<td>Instrument only functions from files where names match any regex separated by a semi-colon <tr><td>-fprofile-generate=<directory><td>Unsupported<td>Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var) <tr><td>-fprofile-generate<td>Unsupported<td>Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM_PROFILE_FILE env var) <tr><td>-fprofile-instr-generate=<file><td>Unsupported<td>Generate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var) <tr><td>-fprofile-instr-generate<td>Unsupported<td>Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var) <tr><td>-fprofile-instr-use=

<td>Unsupported<td>Use instrumentation data for profile-guided optimization <tr><td>-fprofile-remapping-file=<file><td>Unsupported<td>Use the remappings described in <file> to match the profile data against names in the program <tr><td>-fprofile-sample-accurate<td>Unsupported<td>Specifies that the sample profile is accurate <tr><td>-fprofile-sample-use=

<td>Unsupported<td>Enable sample-based profile guided optimizations <tr><td>-fprofile-use=<pathname><td>Unsupported<td>Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>. <tr><td>-freciprocal-math<td>Supported<td>Allow division operations to be reassociated <tr><td>-freg-struct-return<td>Unsupported<td>Override the default ABI to return small structs in registers <tr><td>-fregister-global-dtors-with-atexit<td>Supported<td>Use atexit or __cxa_atexit to register global destructors <tr><td>-frelaxed-template-template-args<td>Supported<td>Enable C++17 relaxed template template argument matching <tr><td>-freroll-loops<td>Supported<td>Turn on loop reroller <tr><td>-frtlib-add-rpath<td>Supported<td>Add -rpath with architecture-specific resource directory to the linker flags <tr><td>-fsanitize-address-field-padding=

<td>Unsupported<td>Level of field padding for AddressSanitizer <tr><td>-fsanitize-address-globals-dead-stripping<td>Unsupported<td>Enable linker dead stripping of globals in AddressSanitizer <tr><td>-fsanitize-address-poison-custom-array-cookie<td>Unsupported<td>Enable poisoning array cookies when using custom operator new[] in AddressSanitizer <tr><td>-fsanitize-address-use-after-scope<td>Unsupported<td>Enable use-after-scope detection in AddressSanitizer <tr><td>-fsanitize-address-use-odr-indicator<td>Unsupported<td>Enable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size <tr><td>-fsanitize-blacklist=

<td>Unsupported<td>Path to blacklist file for sanitizers <tr><td>-fsanitize-cfi-cross-dso<td>Unsupported<td>Enable control flow integrity (CFI) checks for cross-DSO calls. <tr><td>-fsanitize-cfi-icall-generalize-pointers<td>Unsupported<td>Generalize pointers in CFI indirect call type signature checks <tr><td>-fsanitize-coverage=

<td>Unsupported<td>Specify the type of coverage instrumentation for Sanitizers <tr><td>-fsanitize-hwaddress-abi=

<td>Unsupported<td>Select the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor) <tr><td>-fsanitize-memory-track-origins=

<td>Unsupported<td>Enable origins tracking in MemorySanitizer <tr><td>-fsanitize-memory-track-origins<td>Unsupported<td>Enable origins tracking in MemorySanitizer <tr><td>-fsanitize-memory-use-after-dtor<td>Unsupported<td>Enable use-after-destroy detection in MemorySanitizer <tr><td>-fsanitize-recover=

<td>Unsupported<td>Enable recovery for specified sanitizers <tr><td>-fsanitize-stats<td>Unsupported<td>Enable sanitizer statistics gathering. <tr><td>-fsanitize-thread-atomics<td>Unsupported<td>Enable atomic operations instrumentation in ThreadSanitizer (default) <tr><td>-fsanitize-thread-func-entry-exit<td>Unsupported<td>Enable function entry/exit instrumentation in ThreadSanitizer (default) <tr><td>-fsanitize-thread-memory-access<td>Unsupported<td>Enable memory access instrumentation in ThreadSanitizer (default) <tr><td>-fsanitize-trap=

<td>Unsupported<td>Enable trapping for specified sanitizers <tr><td>-fsanitize-undefined-strip-path-components=<number><td>Unsupported<td>Strip (or keep only, if negative) a given number of path components when emitting check metadata. <tr><td>-fsanitize=<check><td>Unsupported<td>Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks <tr><td>-fsave-optimization-record<td>Supported<td>Generate a YAML optimization record file <tr><td>-fseh-exceptions<td>Supported<td>Use SEH style exceptions <tr><td>-fshort-enums<td>Supported<td>Allocate to an enum type only as many bytes as it needs for the declared range of possible values <tr><td>-fshort-wchar<td>Unsupported<td>Force wchar_t to be a short unsigned int <tr><td>-fshow-overloads=

<td>Supported<td>Which overload candidates to show when overload resolution fails: best|all; defaults to all <tr><td>-fsized-deallocation<td>Supported<td>Enable C++14 sized global deallocation functions <tr><td>-fsjlj-exceptions<td>Supported<td>Use SjLj style exceptions <tr><td>-fslp-vectorize<td>Supported<td>Enable the superword-level parallelism vectorization passes <tr><td>-fsplit-dwarf-inlining<td>Unsupported<td>Provide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF <tr><td>-fsplit-lto-unit<td>Unsupported<td>Enables splitting of the LTO unit. <tr><td>-fstack-protector-all<td>Unsupported<td>Enable stack protectors for all functions <tr><td>-fstack-protector-strong<td>Unsupported<td>Enable 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 <tr><td>-fstack-protector<td>Unsupported<td>Enable 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 <tr><td>-fstack-size-section<td>Supported<td>Emit section containing metadata on function stack sizes <tr><td>-fstandalone-debug<td>Supported<td>Emit full debug info for all types used by the program <tr><td>-fstrict-enums<td>Supported<td>Enable optimizations based on the strict definition of an enum's value range <tr><td>-fstrict-float-cast-overflow<td>Supported<td>Assume that overflowing float-to-int casts are undefined (default) <tr><td>-fstrict-return<td>Supported<td>Always treat control flow paths that fall off the end of a non-void function as unreachable <tr><td>-fstrict-vtable-pointers<td>Supported<td>Enable optimizations based on the strict rules for overwriting polymorphic C++ objects <tr><td>-fthinlto-index=

<td>Unsupported<td>Perform ThinLTO importing using provided function summary index <tr><td>-ftrap-function=

<td>Unsupported<td>Issue call to specified function rather than a trap instruction <tr><td>-ftrapv-handler=<function name>=""><td>Unsupported<td>Specify the function to be called on overflow <tr><td>-ftrapv<td>Unsupported<td>Trap on integer overflow <tr><td>-ftrigraphs<td>Supported<td>Process trigraph sequences <tr><td>-ftrivial-auto-var-init=

<td>Supported<td>Initialize trivial automatic stack variables: uninitialized (default) | pattern <tr><td>-funique-section-names<td>Supported<td>Use unique names for text and data sections (ELF Only) <tr><td>-funroll-loops<td>Supported<td>Turn on loop unroller <tr><td>-fuse-init-array<td>Supported<td>Use .init_array instead of .ctors <tr><td>-fveclib=

<td>Unsupported<td>Use the given vector functions library <tr><td>-fvectorize<td>Unsupported<td>Enable the loop vectorization passes <tr><td>-fvisibility-global-new-delete-hidden<td>Supported<td>Give global C++ operator new and delete declarations hidden visibility <tr><td>-fvisibility-inlines-hidden<td>Supported<td>Give inline C++ member functions hidden visibility by default <tr><td>-fvisibility-ms-compat<td>Supported<td>Give global types 'default' visibility and global functions and variables 'hidden' visibility by default <tr><td>-fvisibility=

<td>Supported<td>Set the default symbol visibility for all global declarations <tr><td>-fwhole-program-vtables<td>Unsupported<td>Enables whole-program vtable optimization. Requires -flto <tr><td>-fwrapv<td>Supported<td>Treat signed integer overflow as two's complement <tr><td>-fwritable-strings<td>Supported<td>Store string literals as writable data <tr><td>-fxray-always-emit-customevents<td>Unsupported<td>Determine whether to always emit __xray_customevent(...) calls even if the function it appears in is not always instrumented. <tr><td>-fxray-always-emit-typedevents<td>Unsupported<td>Determine whether to always emit __xray_typedevent(...) calls even if the function it appears in is not always instrumented. <tr><td>-fxray-always-instrument=

<td>Unsupported<td>DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute. <tr><td>-fxray-attr-list=

<td>Unsupported<td>Filename defining the list of functions/types for imbuing XRay attributes. <tr><td>-fxray-instruction-threshold=

<td>Unsupported<td>Sets the minimum function size to instrument with XRay <tr><td>-fxray-instrumentation-bundle=

<td>Unsupported<td>Select which XRay instrumentation points to emit. Options: all, none, function, custom. Default is 'all'. <tr><td>-fxray-instrument<td>Unsupported<td>Generate XRay instrumentation sleds on function entry and exit <tr><td>-fxray-link-deps<td>Unsupported<td>Tells clang to add the link dependencies for XRay. <tr><td>-fxray-modes=

<td>Unsupported<td>List of modes to link in by default into XRay instrumented binaries. <tr><td>-fxray-never-instrument=

<td>Unsupported<td>DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute. <tr><td>-fzvector<td>Supported<td>Enable System z vector language extension <tr><td>-F

<td>Unsupported<td>Add directory to framework include search path <tr><td>–gcc-toolchain=

<td>Supported<td>Use the gcc toolchain at the given directory <tr><td>-gcodeview-ghash<td>Supported<td>Emit type record hashes in a .debug$H section <tr><td>-gcodeview<td>Supported<td>Generate CodeView debug information <tr><td>-gdwarf-2<td>Supported<td>Generate source-level debug information with dwarf version 2 <tr><td>-gdwarf-3<td>Supported<td>Generate source-level debug information with dwarf version 3 <tr><td>-gdwarf-4<td>Supported<td>Generate source-level debug information with dwarf version 4 <tr><td>-gdwarf-5<td>Supported<td>Generate source-level debug information with dwarf version 5 <tr><td>-gembed-source<td>Supported<td>Embed source text in DWARF debug sections <tr><td>-gline-directives-only<td>Supported<td>Emit debug line info directives only <tr><td>-gline-tables-only<td>Supported<td>Emit debug line number tables only <tr><td>-gmodules<td>Supported<td>Generate debug info with external references to clang modules or precompiled headers <tr><td>-gno-embed-source<td>Supported<td>Restore the default behavior of not embedding source text in DWARF debug sections <tr><td>-gsplit-dwarf=

<td>Supported<td>Set DWARF fission mode to either 'split' or 'single' <tr><td>-gz=

<td>Supported<td>DWARF debug sections compression type <tr><td>-gz<td>Supported<td>DWARF debug sections compression type <tr><td>-G <size><td>Unsupported<td>Put objects of at most <size> bytes into small data section (MIPS / Hexagon) <tr><td>-g<td>Supported<td>Generate source-level debug information <tr><td>–help-hidden<td>Supported<td>Display help for hidden options <tr><td>-help<td>Supported<td>Display available options <tr><td>–hip-device-lib-path=

<td>Supported<td>HIP device library path <tr><td>–hip-device-lib=

<td>Supported<td>HIP device library <tr><td>–hip-link<td>Supported<td>Link clang-offload-bundler bundles for HIP <tr><td>-H<td>Supported<td>Show header includes and nesting depth <tr><td>-I-<td>Supported<td>Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path <tr><td>-idirafter

<td>Supported<td>Add directory to AFTER include search path <tr><td>-iframeworkwithsysroot <directory><td>Unsupported<td>Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot <tr><td>-iframework

<td>Unsupported<td>Add directory to SYSTEM framework search path <tr><td>-imacros <file><td>Supported<td>Include macros from file before parsing <tr><td>-include-pch <file><td>Supported<td>Include precompiled header file <tr><td>-include <file><td>Supported<td>Include file before parsing <tr><td>-index-header-map<td>Supported<td>Make the next included directory (-I or -F) an indexer header map <tr><td>-iprefix <dir><td>Supported<td>Set the -iwithprefix/-iwithprefixbefore prefix <tr><td>-iquote <directory><td>Supported<td>Add directory to QUOTE include search path <tr><td>-isysroot <dir><td>Supported<td>Set the system root directory (usually /) <tr><td>-isystem-after <directory><td>Supported<td>Add directory to end of the SYSTEM include search path <tr><td>-isystem <directory><td>Supported<td>Add directory to SYSTEM include search path <tr><td>-ivfsoverlay

<td>Supported<td>Overlay the virtual filesystem described by file over the real file system <tr><td>-iwithprefixbefore <dir><td>Supported<td>Set directory to include search path with prefix <tr><td>-iwithprefix <dir><td>Supported<td>Set directory to SYSTEM include search path with prefix <tr><td>-iwithsysroot <directory><td>Supported<td>Add directory to SYSTEM include search path, absolute paths are relative to -isysroot <tr><td>-I <dir><td>Supported<td>Add directory to include search path <tr><td>–libomptarget-nvptx-path=

<td>Unsupported<td>Path to libomptarget-nvptx libraries <tr><td>-L <dir><td>Supported<td>Add directory to library search path <tr><td>-mabicalls<td>Unsupported<td>Enable SVR4-style position-independent code (Mips only) <tr><td>-malign-double<td>Supported<td>Align doubles to two words in structs (x86 only) <tr><td>-mbackchain<td>Unsupported<td>Link stack frames through backchain on System Z <tr><td>-mbranch-protection=

<td>Unsupported<td>Enforce targets of indirect branches and function returns <tr><td>-mcode-object-v3<td>Unsupported<td>Enable code object v3 (AMDGPU only) <tr><td>-mcrc<td>Unsupported<td>Allow use of CRC instructions (ARM/Mips only) <tr><td>-MD<td>Supported<td>Write a depfile containing user and system headers <tr><td>-meabi

<td>Supported<td>Set EABI type, e.g. 4, 5 or gnu (default depends on triple) <tr><td>-membedded-data<td>Unsupported<td>Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS) <tr><td>-mexecute-only<td>Unsupported<td>Disallow generation of data access to code sections (ARM only) <tr><td>-mextern-sdata<td>Unsupported<td>Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS) <tr><td>-mfentry<td>Supported<td>Insert calls to fentry at function entry (x86 only) <tr><td>-mfix-cortex-a53-835769<td>Unsupported<td>Workaround Cortex-A53 erratum 835769 (AArch64 only) <tr><td>-mfp32<td>Unsupported<td>Use 32-bit floating point registers (MIPS only) <tr><td>-mfp64<td>Unsupported<td>Use 64-bit floating point registers (MIPS only) <tr><td>-MF <file><td>Supported<td>Write depfile output from -MMD, -MD, -MM, or -M to <file> <tr><td>-mgeneral-regs-only<td>Unsupported<td>Generate code which only uses the general purpose registers (AArch64 only) <tr><td>-mglobal-merge<td>Supported<td>Enable merging of globals <tr><td>-mgpopt<td>Unsupported<td>Use GP relative accesses for symbols known to be in a small data section (MIPS) <tr><td>-MG<td>Supported<td>Add missing headers to depfile <tr><td>-mhvx-length=

<td>Unsupported<td>Set Hexagon Vector Length <tr><td>-mhvx=

<td>Unsupported<td>Enable Hexagon Vector eXtensions <tr><td>-mhvx<td>Unsupported<td>Enable Hexagon Vector eXtensions <tr><td>-miamcu<td>Unsupported<td>Use Intel MCU ABI <tr><td>–migrate<td>Unsupported<td>Run the migrator <tr><td>-mincremental-linker-compatible<td>Supported<td>(integrated-as) Emit an object file which can be used with an incremental linker <tr><td>-mindirect-jump=

<td>Unsupported<td>Change indirect jump instructions to inhibit speculation <tr><td>-mios-version-min=

<td>Unsupported<td>Set iOS deployment target <tr><td>-MJ

<td>Unsupported<td>Write a compilation database entry per input <tr><td>-mllvm

<td>Supported<td>Additional arguments to forward to LLVM's option processing <tr><td>-mlocal-sdata<td>Unsupported<td>Extend the -G behaviour to object local data (MIPS) <tr><td>-mlong-calls<td>Supported<td>Generate branches with extended addressability, usually via indirect jumps. <tr><td>-mmacosx-version-min=

<td>Unsupported<td>Set Mac OS X deployment target <tr><td>-mmadd4<td>Supported<td>Enable the generation of 4-operand madd.s, madd.d and related instructions. <tr><td>-MMD<td>Supported<td>Write a depfile containing user headers <tr><td>-mmemops<td>Supported<td>Enable generation of memop instructions <tr><td>-mms-bitfields<td>Unsupported<td>Set the default structure layout to be compatible with the Microsoft compiler standard <tr><td>-mmsa<td>Unsupported<td>Enable MSA ASE (MIPS only) <tr><td>-mmt<td>Unsupported<td>Enable MT ASE (MIPS only) <tr><td>-MM<td>Supported<td>Like -MMD, but also implies -E and writes to stdout by default <tr><td>-mno-abicalls<td>Unsupported<td>Disable SVR4-style position-independent code (Mips only) <tr><td>-mno-code-object-v3<td>Supported<td>Disable code object v3 (AMDGPU only) <tr><td>-mno-crc<td>Unsupported<td>Disallow use of CRC instructions (Mips only) <tr><td>-mno-embedded-data<td>Unsupported<td>Do not place constants in the .rodata section instead of the .sdata if they meet the -G <size> threshold (MIPS) <tr><td>-mno-execute-only<td>Unsupported<td>Allow generation of data access to code sections (ARM only) <tr><td>-mno-extern-sdata<td>Unsupported<td>Do not assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS) <tr><td>-mno-fix-cortex-a53-835769<td>Unsupported<td>Don't workaround Cortex-A53 erratum 835769 (AArch64 only) <tr><td>-mno-global-merge<td>Supported<td>Disable merging of globals <tr><td>-mno-gpopt<td>Unsupported<td>Do not use GP relative accesses for symbols known to be in a small data section (MIPS) <tr><td>-mno-hvx<td>Unsupported<td>Disable Hexagon Vector eXtensions <tr><td>-mno-implicit-float<td>Supported<td>Don't generate implicit floating point instructions <tr><td>-mno-incremental-linker-compatible<td>Supported<td>(integrated-as) Emit an object file which cannot be used with an incremental linker <tr><td>-mno-local-sdata<td>Unsupported<td>Do not extend the -G behaviour to object local data (MIPS) <tr><td>-mno-long-calls<td>Supported<td>Restore the default behaviour of not generating long calls <tr><td>-mno-madd4<td>Supported<td>Disable the generation of 4-operand madd.s, madd.d and related instructions. <tr><td>-mno-memops<td>Supported<td>Disable generation of memop instructions <tr><td>-mno-movt<td>Supported<td>Disallow use of movt/movw pairs (ARM only) <tr><td>-mno-ms-bitfields<td>Supported<td>Do not set the default structure layout to be compatible with the Microsoft compiler standard <tr><td>-mno-msa<td>Unsupported<td>Disable MSA ASE (MIPS only) <tr><td>-mno-mt<td>Unsupported<td>Disable MT ASE (MIPS only) <tr><td>-mno-neg-immediates<td>Supported<td>Disallow converting instructions with negative immediates to their negation or inversion. <tr><td>-mno-nvj<td>Supported<td>Disable generation of new-value jumps <tr><td>-mno-nvs<td>Supported<td>Disable generation of new-value stores <tr><td>-mno-outline<td>Unsupported<td>Disable function outlining (AArch64 only) <tr><td>-mno-packets<td>Supported<td>Disable generation of instruction packets <tr><td>-mno-relax<td>Supported<td>Disable linker relaxation <tr><td>-mno-restrict-it<td>Unsupported<td>Allow generation of deprecated IT blocks for ARMv8. It is off by default for ARMv8 Thumb mode <tr><td>-mno-sram-ecc<td>Supported<td>Disable SRAM ECC (AMDGPU only) <tr><td>-mno-stack-arg-probe<td>Supported<td>Disable stack probes which are enabled by default <tr><td>-mno-tls-direct-seg-refs<td>Supported<td>Disable direct TLS access through segment registers <tr><td>-mno-unaligned-access<td>Unsupported<td>Force all memory accesses to be aligned (AArch32/AArch64 only) <tr><td>-mno-xnack<td>Supported<td>Disable XNACK (AMDGPU only) <tr><td>-mnocrc<td>Unsupported<td>Disallow use of CRC instructions (ARM only) <tr><td>-mnvj<td>Supported<td>Enable generation of new-value jumps <tr><td>-mnvs<td>Supported<td>Enable generation of new-value stores <tr><td>-module-dependency-dir

<td>Unsupported<td>Directory to dump module dependencies to <tr><td>-module-file-info<td>Unsupported<td>Provide information about a particular module file <tr><td>-momit-leaf-frame-pointer<td>Supported<td>Omit frame pointer setup for leaf functions <tr><td>-moutline<td>Unsupported<td>Enable function outlining (AArch64 only) <tr><td>-mpackets<td>Supported<td>Enable generation of instruction packets <tr><td>-mpie-copy-relocations<td>Supported<td>Use copy relocations support for PIE builds <tr><td>-mprefer-vector-width=

<td>Unsupported<td>Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions. <tr><td>-MP<td>Supported<td>Create phony target for each dependency (other than main file) <tr><td>-mqdsp6-compat<td>Unsupported<td>Enable hexagon-qdsp6 backward compatibility <tr><td>-MQ

<td>Supported<td>Specify name of main file output to quote in depfile <tr><td>-mrelax-all<td>Supported<td>(integrated-as) Relax all machine instructions <tr><td>-mrelax<td>Supported<td>Enable linker relaxation <tr><td>-mrestrict-it<td>Unsupported<td>Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode. <tr><td>-mrtd<td>Unsupported<td>Make StdCall calling convention the default <tr><td>-msign-return-address=

<td>Unsupported<td>Select return address signing scope <tr><td>-msoft-float<td>Supported<td>Use software floating point <tr><td>-msram-ecc<td>Supported<td>Enable SRAM ECC (AMDGPU only) <tr><td>-mstack-alignment=

<td>Unsupported<td>Set the stack alignment <tr><td>-mstack-arg-probe<td>Unsupported<td>Enable stack probes <tr><td>-mstack-probe-size=

<td>Unsupported<td>Set the stack probe size <tr><td>-mstackrealign<td>Unsupported<td>Force realign the stack at entry to every function <tr><td>-mthread-model

<td>Supported<td>The thread model to use, e.g. posix, single (posix by default) <tr><td>-mtls-direct-seg-refs<td>Supported<td>Enable direct TLS access through segment registers (default) <tr><td>-mtp=

<td>Unsupported<td>Read thread pointer from coprocessor register (ARM only) <tr><td>-MT

<td>Unsupported<td>Specify name of main file output in depfile <tr><td>-munaligned-access<td>Unsupported<td>Allow memory accesses to be unaligned (AArch32/AArch64 only) <tr><td>-MV<td>Supported<td>Use NMake/Jom format for the depfile <tr><td>-mxnack<td>Supported<td>Enable XNACK (AMDGPU only) <tr><td>-M<td>Supported<td>Like -MD, but also implies -E and writes to stdout by default <tr><td>–no-cuda-gpu-arch=

<td>Supported<td>Remove GPU architecture (e.g. sm_35) from the list of GPUs to compile for. 'all' resets the list to its default value. <tr><td>–no-cuda-include-ptx=

<td>Supported<td>Do not include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once. <tr><td>–no-cuda-version-check<td>Supported<td>Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture. <tr><td>–no-system-header-prefix=<prefix><td>Supported<td>Treat all #include paths starting with <prefix> as not including a system header. <tr><td>-nobuiltininc<td>Supported<td>Disable builtin #include directories <tr><td>-nostdinc++<td>Unsupported<td>Disable standard #include directories for the C++ standard library <tr><td>-ObjC++<td>Unsupported<td>Treat source input files as Objective-C++ inputs <tr><td>-objcmt-atomic-property<td>Unsupported<td>Make migration to 'atomic' properties <tr><td>-objcmt-migrate-all<td>Unsupported<td>Enable migration to modern ObjC <tr><td>-objcmt-migrate-annotation<td>Unsupported<td>Enable migration to property and method annotations <tr><td>-objcmt-migrate-designated-init<td>Unsupported<td>Enable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods <tr><td>-objcmt-migrate-instancetype<td>Unsupported<td>Enable migration to infer instancetype for method result type <tr><td>-objcmt-migrate-literals<td>Unsupported<td>Enable migration to modern ObjC literals <tr><td>-objcmt-migrate-ns-macros<td>Unsupported<td>Enable migration to NS_ENUM/NS_OPTIONS macros <tr><td>-objcmt-migrate-property-dot-syntax<td>Unsupported<td>Enable migration of setter/getter messages to property-dot syntax <tr><td>-objcmt-migrate-property<td>Unsupported<td>Enable migration to modern ObjC property <tr><td>-objcmt-migrate-protocol-conformance<td>Unsupported<td>Enable migration to add protocol conformance on classes <tr><td>-objcmt-migrate-readonly-property<td>Unsupported<td>Enable migration to modern ObjC readonly property <tr><td>-objcmt-migrate-readwrite-property<td>Unsupported<td>Enable migration to modern ObjC readwrite property <tr><td>-objcmt-migrate-subscripting<td>Unsupported<td>Enable migration to modern ObjC subscripting <tr><td>-objcmt-ns-nonatomic-iosonly<td>Unsupported<td>Enable migration to use NS_NONATOMIC_IOSONLY macro for setting property's 'atomic' attribute <tr><td>-objcmt-returns-innerpointer-property<td>Unsupported<td>Enable migration to annotate property with NS_RETURNS_INNER_POINTER <tr><td>-objcmt-whitelist-dir-path=

<td>Unsupported<td>Only modify files with a filename contained in the provided directory path <tr><td>-ObjC<td>Unsupported<td>Treat source input files as Objective-C inputs <tr><td>-o <file><td>Supported<td>Write output to <file> <tr><td>-pg<td>Supported<td>Enable mcount instrumentation <tr><td>-pipe<td>Supported<td>Use pipes between commands, when possible <tr><td>–precompile<td>Supported<td>Only precompile the input <tr><td>-print-effective-triple<td>Supported<td>Print the effective target triple <tr><td>-print-file-name=<file><td>Supported<td>Print the full library path of <file> <tr><td>-print-ivar-layout<td>Unsupported<td>Enable Objective-C Ivar layout bitmap print trace <tr><td>-print-libgcc-file-name<td>Supported<td>Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang_rt.builtins.*.a") <tr><td>-print-prog-name=<name><td>Supported<td>Print the full program path of <name> <tr><td>-print-resource-dir<td>Supported<td>Print the resource directory pathname <tr><td>-print-search-dirs<td>Supported<td>Print the paths used for finding libraries and programs <tr><td>-print-target-triple<td>Supported<td>Print the normalized target triple <tr><td>-pthread<td>Supported<td>Support POSIX threads in generated code <tr><td>–ptxas-path=

<td>Unsupported<td>Path to ptxas (used for compiling CUDA code) <tr><td>-P<td>Supported<td>Disable linemarker output in -E mode <tr><td>-Qn<td>Supported<td>Do not emit metadata containing compiler name and version <tr><td>-Qunused-arguments<td>Supported<td>Don't emit warning for unused driver arguments <tr><td>-Qy<td>Supported<td>Emit metadata containing compiler name and version <tr><td>-relocatable-pch<td>Supported<td>Whether to build a relocatable precompiled header <tr><td>-rewrite-legacy-objc<td>Unsupported<td>Rewrite Legacy Objective-C source to C++ <tr><td>-rewrite-objc<td>Unsupported<td>Rewrite Objective-C source to C++ <tr><td>-Rpass-analysis=

<td>Supported<td>Report transformation analysis from optimization passes whose name matches the given POSIX regular expression <tr><td>-Rpass-missed=

<td>Supported<td>Report missed transformations by optimization passes whose name matches the given POSIX regular expression <tr><td>-Rpass=

<td>Supported<td>Report transformations performed by optimization passes whose name matches the given POSIX regular expression <tr><td>-rtlib=

<td>Unsupported<td>Compiler runtime library to use <tr><td>-R<remark><td>Unsupported<td>Enable the specified remark <tr><td>-save-stats=

<td>Supported<td>Save llvm statistics. <tr><td>-save-stats<td>Supported<td>Save llvm statistics. <tr><td>-save-temps=

<td>Supported<td>Save intermediate compilation results. <tr><td>-save-temps<td>Supported<td>Save intermediate compilation results <tr><td>-serialize-diagnostics

<td>Supported<td>Serialize compiler diagnostics to a file <tr><td>-shared-libsan<td>Unsupported<td>Dynamically link the sanitizer runtime <tr><td>-static-libsan<td>Unsupported<td>Statically link the sanitizer runtime <tr><td>-std=

<td>Supported<td>Language standard to compile for <tr><td>-stdlib=

<td>Supported<td>C++ standard library to use <tr><td>–system-header-prefix=<prefix><td>Supported<td>Treat all #include paths starting with <prefix> as including a system header. <tr><td>-S<td>Supported<td>Only run preprocess and compilation steps <tr><td>–target=

<td>Supported<td>Generate code for the given target <tr><td>-Tbss <addr><td>Supported<td>Set starting address of BSS to <addr> <tr><td>-Tdata <addr><td>Supported<td>Set starting address of DATA to <addr> <tr><td>-time<td>Supported<td>Time individual commands <tr><td>-traditional-cpp<td>Unsupported<td>Enable some traditional CPP emulation <tr><td>-trigraphs<td>Supported<td>Process trigraph sequences <tr><td>-Ttext <addr><td>Supported<td>Set starting address of TEXT to <addr> <tr><td>-T <script><td>Unsupported<td>Specify <script> as linker script <tr><td>-undef<td>Supported<td>undef all system defines <tr><td>-U <macro><td>Supported<td>Undefine macro <macro> <tr><td>–verify-debug-info<td>Supported<td>Verify the binary representation of debug output <tr><td>-verify-pch<td>Unsupported<td>Load and verify that a pre-compiled header file is not stale <tr><td>–version<td>Supported<td>Print version information <tr><td>-v<td>Supported<td>Show commands to run and use verbose output <tr><td>-Wa,<arg><td>Supported<td>Pass the comma separated arguments in <arg> to the assembler <tr><td>-Wdeprecated<td>Supported<td>Enable warnings for deprecated constructs and define __DEPRECATED <tr><td>-Wl,<arg><td>Supported<td>Pass the comma separated arguments in <arg> to the linker <tr><td>-working-directory

<td>Supported<td>Resolve file paths relative to the specified directory <tr><td>-Wp,<arg><td>Supported<td>Pass the comma separated arguments in <arg> to the preprocessor <tr><td>-W<warning><td>Supported<td>Enable the specified warning <tr><td>-w<td>Supported<td>Suppress all warnings <tr><td>-Xanalyzer <arg><td>Supported<td>Pass <arg> to the static analyzer <tr><td>-Xassembler <arg><td>Supported<td>Pass <arg> to the assembler <tr><td>-Xclang <arg><td>Supported<td>Pass <arg> to the clang compiler <tr><td>-Xcuda-fatbinary <arg><td>Supported<td>Pass <arg> to fatbinary invocation <tr><td>-Xcuda-ptxas <arg><td>Supported<td>Pass <arg> to the ptxas assembler <tr><td>-Xlinker <arg><td>Supported<td>Pass <arg> to the linker <tr><td>-Xopenmp-target=<triple> <arg><td>Supported<td>Pass <arg> to the target offloading toolchain identified by <triple>. <tr><td>-Xopenmp-target <arg><td>Supported<td>Pass <arg> to the target offloading toolchain. <tr><td>-Xpreprocessor <arg><td>Supported<td>Pass <arg> to the preprocessor <tr><td>-x <language><td>Supported<td>Treat subsequent input files as having type <language> <tr><td>-z <arg><td>Supported<td>Pass -z <arg> to the linker`