Packages and Binaries:

clang

Clang project is a C, C++, Objective C and Objective C++ front-end for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC).

Clang implements all of the ISO C++ 1998, 11 and 14 standards and also provides most of the support of C++17.

This is a dependency package providing the default clang compiler.

Installed size: 24 KB
How to install: sudo apt install clang

  • clang-11
asan_symbolize
root@kali:~# asan_symbolize -h
usage: asan_symbolize [-h] [-d] [-c CROSS_COMPILE] [-l LOGFILE]
                      [--force-system-symbolizer] [--log-dest LOG_DEST]
                      [--log-level {debug,info,warning,error,critical}]
                      [-p PLUGINS [PLUGINS ...]] [--module-map MODULE_MAP]
                      [--skip-uuid-validation] [-s SYSROOT]
                      [path_to_cut ...]

ASan symbolization script

positional arguments:
  path_to_cut           pattern to be cut from the result file path

optional arguments:
  -h, --help            show this help message and exit
  -d, --demangle        demangle function names
  -c CROSS_COMPILE      set prefix for binutils
  -l LOGFILE, --logfile LOGFILE
                        set log file name to parse, default is stdin
  --force-system-symbolizer
                        don't use llvm-symbolizer
  --log-dest LOG_DEST   Destination path for script logging (default stderr).
  --log-level {debug,info,warning,error,critical}
                        Log level for script (default: info).
  -p PLUGINS [PLUGINS ...], --plugins PLUGINS [PLUGINS ...]
                        Load plug-in
  --module-map MODULE_MAP
                        Path to text file containing module mapoutput. See
                        print_module_map ASan option.
  --skip-uuid-validation
                        Skips validating UUID of modules using otool.
  -s SYSROOT            set path to sysroot for sanitized binaries

Example of use:
  asan_symbolize.py -c "$HOME/opt/cross/bin/arm-linux-gnueabi-" -s "$HOME/SymbolFiles" < asan.log

PLUGINS

This script provides a way for external plug-ins to hook into the behaviour of
various parts of this script (see `--plugins`). This is useful for situations
where it is necessary to handle site-specific quirks (e.g. binaries with debug
symbols only accessible via a remote service) without having to modify the
script itself.
  

clang

The Clang C, C++, and Objective-C compiler

root@kali:~# clang --help
OVERVIEW: clang LLVM compiler

USAGE: clang [options] file...

OPTIONS:
  -###                    Print (but do not run) the commands to run for this compilation
  --analyzer-output <value>
                          Static analyzer report output format (html|plist|plist-multi-file|plist-html|sarif|text).
  --analyze               Run the static analyzer
  -arcmt-migrate-emit-errors
                          Emit ARC errors even if the migrator can fix them
  -arcmt-migrate-report-output <value>
                          Output path for the plist report
  -B <dir>                Add <dir> to search path for binaries and object files used implicitly
  -CC                     Include comments from within macros in preprocessed output
  -cl-denorms-are-zero    OpenCL only. Allow denormals to be flushed to zero.
  -cl-fast-relaxed-math   OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__.
  -cl-finite-math-only    OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
  -cl-fp32-correctly-rounded-divide-sqrt
                          OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
  -cl-kernel-arg-info     OpenCL only. Generate kernel argument metadata.
  -cl-mad-enable          OpenCL only. Allow use of less precise MAD computations in the generated binary.
  -cl-no-signed-zeros     OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
  -cl-opt-disable         OpenCL only. This option disables all optimizations. By default optimizations are enabled.
  -cl-single-precision-constant
                          OpenCL only. Treat double precision floating-point constant as single precision constant.
  -cl-std=<value>         OpenCL language standard to compile for.
  -cl-strict-aliasing     OpenCL only. This option is added for compatibility with OpenCL 1.0.
  -cl-uniform-work-group-size
                          OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
  -cl-unsafe-math-optimizations
                          OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.
  --config <value>        Specifies configuration file
  --cuda-compile-host-device
                          Compile CUDA code for both host and device (default).  Has no effect on non-CUDA compilations.
  --cuda-device-only      Compile CUDA code for device only
  --cuda-host-only        Compile CUDA code for host only.  Has no effect on non-CUDA compilations.
  --cuda-include-ptx=<value>
                          Include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once.
  --cuda-noopt-device-debug
                          Enable device-side debug info generation. Disables ptxas optimizations.
  --cuda-path-ignore-env  Ignore environment variables to detect CUDA installation
  --cuda-path=<value>     CUDA installation path
  -cxx-isystem <directory>
                          Add directory to the C++ SYSTEM include search path
  -C                      Include comments in preprocessed output
  -c                      Only run preprocess, compile, and assemble steps
  -dD                     Print macro definitions in -E mode in addition to normal output
  -dependency-dot <value> Filename to write DOT-formatted header dependencies to
  -dependency-file <value>
                          Filename (or -) to write dependency output to
  -dI                     Print include directives in -E mode in addition to normal output
  -dM                     Print macro definitions in -E mode instead of normal output
  -D <macro>=<value>      Define <macro> to <value> (or 1 if <value> omitted)
  -emit-ast               Emit Clang AST files for source inputs
  -emit-interface-stubs   Generate Inteface Stub Files.
  -emit-llvm              Use the LLVM representation for assembler and object files
  -emit-merged-ifs        Generate Interface Stub Files, emit merged text not binary.
  --emit-static-lib       Enable linker job to emit a static library.
  -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
                          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
  -E                      Only run the preprocessor
  -fAAPCSBitfieldLoad     Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only).
  -faddrsig               Emit an address-significance table
  -faligned-allocation    Enable C++17 aligned allocation functions
  -fallow-editor-placeholders
                          Treat editor placeholders as valid source code
  -fansi-escape-codes     Use ANSI escape codes for diagnostics
  -fapple-kext            Use Apple's kernel extensions ABI
  -fapple-link-rtlib      Force linking the clang builtins runtime library
  -fapple-pragma-pack     Enable Apple gcc-compatible #pragma pack handling
  -fapplication-extension Restrict code to those available for App Extensions
  -fasm-blocks            
  -fautolink              
  -fbasic-block-sections=<value>
                          Place each function's basic blocks in unique sections (ELF Only) : all | labels | none | list=<file>
  -fblocks                Enable the 'blocks' language feature
  -fborland-extensions    Accept non-standard constructs supported by the Borland compiler
  -fbuild-session-file=<file>
                          Use the last modification time of <file> as the build session timestamp
  -fbuild-session-timestamp=<time since Epoch in seconds>
                          Time when the current build session started
  -fbuiltin-module-map    Load the clang builtins module map file.
  -fc++-static-destructors
                          
  -fcall-saved-x10        Make the x10 register call-saved (AArch64 only)
  -fcall-saved-x11        Make the x11 register call-saved (AArch64 only)
  -fcall-saved-x12        Make the x12 register call-saved (AArch64 only)
  -fcall-saved-x13        Make the x13 register call-saved (AArch64 only)
  -fcall-saved-x14        Make the x14 register call-saved (AArch64 only)
  -fcall-saved-x15        Make the x15 register call-saved (AArch64 only)
  -fcall-saved-x18        Make the x18 register call-saved (AArch64 only)
  -fcall-saved-x8         Make the x8 register call-saved (AArch64 only)
  -fcall-saved-x9         Make the x9 register call-saved (AArch64 only)
  -fcaret-diagnostics     
  -fcf-protection=<value> Instrument control-flow architecture protection. Options: return, branch, full, none.
  -fcf-protection         Enable cf-protection in 'full' mode
  -fchar8_t               Enable C++ builtin type char8_t
  -fclang-abi-compat=<version>
                          Attempt to match the ABI of Clang <version>
  -fcolor-diagnostics     Enable colors in diagnostics
  -fcomment-block-commands=<arg>
                          Treat each comma separated argument in <arg> as a documentation comment block command
  -fcommon                Place uninitialized global variables in a common block
  -fcomplete-member-pointers
                          Require member pointer base types to be complete if they would be significant under the Microsoft ABI
  -fconvergent-functions  Assume functions may be convergent
  -fcoroutines-ts         Enable support for the C++ Coroutines TS
  -fcoverage-mapping      Generate coverage mapping to enable code coverage analysis
  -fcs-profile-generate=<directory>
                          Generate instrumented code to collect context sensitive execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)
  -fcs-profile-generate   Generate instrumented code to collect context sensitive execution counts into default.profraw (overridden by LLVM_PROFILE_FILE env var)
  -fcuda-approx-transcendentals
                          Use approximate transcendental functions
  -fcuda-flush-denormals-to-zero
                          Flush denormal floating point values to zero in CUDA device mode.
  -fcuda-short-ptr        Use 32-bit pointers for accessing const/local/shared address spaces
  -fcxx-exceptions        Enable C++ exceptions
  -fdata-sections         Place each data in its own section
  -fdebug-compilation-dir <value>
                          The compilation directory to embed in the debug info.
  -fdebug-default-version=<value>
                          Default DWARF version to use, if a -g option caused DWARF debug info to be produced
  -fdebug-info-for-profiling
                          Emit extra debug info to make sample profile more accurate
  -fdebug-macro           Emit macro debug information
  -fdebug-prefix-map=<value>
                          remap file source paths in debug info
  -fdebug-ranges-base-address
                          Use DWARF base address selection entries in .debug_ranges
  -fdebug-types-section   Place debug types in their own section (ELF Only)
  -fdeclspec              Allow __declspec as a keyword
  -fdelayed-template-parsing
                          Parse templated function definitions at the end of the translation unit
  -fdelete-null-pointer-checks
                          Treat usage of null pointers as undefined behavior (default)
  -fdiagnostics-absolute-paths
                          Print absolute paths in diagnostics
  -fdiagnostics-hotness-threshold=<number>
                          Prevent optimization remarks from being output if they do not have at least this profile count
  -fdiagnostics-parseable-fixits
                          Print fix-its in machine parseable form
  -fdiagnostics-print-source-range-info
                          Print source range spans in numeric form
  -fdiagnostics-show-hotness
                          Enable profile hotness information in diagnostic line
  -fdiagnostics-show-note-include-stack
                          Display include stacks for diagnostic notes
  -fdiagnostics-show-option
                          Print option name with mappable diagnostics
  -fdiagnostics-show-template-tree
                          Print a template comparison tree for differing templates
  -fdigraphs              Enable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default)
  -fdiscard-value-names   Discard value names in LLVM IR
  -fdollars-in-identifiers
                          Allow '$' in identifiers
  -fdouble-square-bracket-attributes
                          Enable '[[]]' attributes in all C and C++ language modes
  -fdwarf-directory-asm   
  -fdwarf-exceptions      Use DWARF style exceptions
  -fembed-bitcode-marker  Embed placeholder LLVM IR data as a marker
  -fembed-bitcode=<option>
                          Embed LLVM bitcode (option: off, all, bitcode, marker)
  -fembed-bitcode         Embed LLVM IR bitcode as data
  -femit-all-decls        Emit all declarations, even if unused
  -femulated-tls          Use emutls functions to access thread_local variables
  -fenable-matrix         Enable matrix data type and related builtin functions
  -fexceptions            Enable support for exception handling
  -fexperimental-new-constant-interpreter
                          Enable the experimental new constant interpreter
  -fexperimental-new-pass-manager
                          Enables an experimental new pass manager in LLVM.
  -fexperimental-relative-c++-abi-vtables
                          Use the experimental C++ class ABI for classes with virtual tables
  -fexperimental-strict-floating-point
                          Enables experimental strict floating point in LLVM.
  -ffast-math             Allow aggressive, lossy floating-point optimizations
  -ffile-prefix-map=<value>
                          remap file source paths in debug info and predefined preprocessor macros
  -ffine-grained-bitfield-accesses
                          Use separate accesses for consecutive bitfield runs with legal widths and alignments.
  -ffixed-point           Enable fixed point types
  -ffixed-r19             Reserve register r19 (Hexagon only)
  -ffixed-r9              Reserve the r9 register (ARM only)
  -ffixed-x10             Reserve the x10 register (AArch64/RISC-V only)
  -ffixed-x11             Reserve the x11 register (AArch64/RISC-V only)
  -ffixed-x12             Reserve the x12 register (AArch64/RISC-V only)
  -ffixed-x13             Reserve the x13 register (AArch64/RISC-V only)
  -ffixed-x14             Reserve the x14 register (AArch64/RISC-V only)
  -ffixed-x15             Reserve the x15 register (AArch64/RISC-V only)
  -ffixed-x16             Reserve the x16 register (AArch64/RISC-V only)
  -ffixed-x17             Reserve the x17 register (AArch64/RISC-V only)
  -ffixed-x18             Reserve the x18 register (AArch64/RISC-V only)
  -ffixed-x19             Reserve the x19 register (AArch64/RISC-V only)
  -ffixed-x1              Reserve the x1 register (AArch64/RISC-V only)
  -ffixed-x20             Reserve the x20 register (AArch64/RISC-V only)
  -ffixed-x21             Reserve the x21 register (AArch64/RISC-V only)
  -ffixed-x22             Reserve the x22 register (AArch64/RISC-V only)
  -ffixed-x23             Reserve the x23 register (AArch64/RISC-V only)
  -ffixed-x24             Reserve the x24 register (AArch64/RISC-V only)
  -ffixed-x25             Reserve the x25 register (AArch64/RISC-V only)
  -ffixed-x26             Reserve the x26 register (AArch64/RISC-V only)
  -ffixed-x27             Reserve the x27 register (AArch64/RISC-V only)
  -ffixed-x28             Reserve the x28 register (AArch64/RISC-V only)
  -ffixed-x29             Reserve the x29 register (AArch64/RISC-V only)
  -ffixed-x2              Reserve the x2 register (AArch64/RISC-V only)
  -ffixed-x30             Reserve the x30 register (AArch64/RISC-V only)
  -ffixed-x31             Reserve the x31 register (AArch64/RISC-V only)
  -ffixed-x3              Reserve the x3 register (AArch64/RISC-V only)
  -ffixed-x4              Reserve the x4 register (AArch64/RISC-V only)
  -ffixed-x5              Reserve the x5 register (AArch64/RISC-V only)
  -ffixed-x6              Reserve the x6 register (AArch64/RISC-V only)
  -ffixed-x7              Reserve the x7 register (AArch64/RISC-V only)
  -ffixed-x8              Reserve the x8 register (AArch64/RISC-V only)
  -ffixed-x9              Reserve the x9 register (AArch64/RISC-V only)
  -fforce-dwarf-frame     Always emit a debug frame section
  -fforce-emit-vtables    Emits more virtual tables to improve devirtualization
  -fforce-enable-int128   Enable support for int128_t type
  -ffp-contract=<value>   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=<value>
                          Specifies the exception behavior of floating-point operations.
  -ffp-model=<value>      Controls the semantics of floating-point calculations.
  -ffreestanding          Assert that the compilation takes place in a freestanding environment
  -ffunction-sections     Place each function in its own section
  -fglobal-isel           Enables the global instruction selector
  -fgnu-inline-asm        
  -fgnu-keywords          Allow GNU-extension keywords regardless of language standard
  -fgnu-runtime           Generate output compatible with the standard GNU Objective-C runtime
  -fgnu89-inline          Use the gnu89 inline semantics
  -fgnuc-version=<value>  Sets various macros to claim compatibility with the given GCC version (default is 4.2.1)
  -fgpu-allow-device-init Allow device side init function in HIP
  -fgpu-rdc               Generate relocatable device code, also known as separate compilation mode
  -fhip-new-launch-api    Use new kernel launching API for HIP
  -fignore-exceptions     Enable support for ignoring exception handling constructs
  -fimplicit-module-maps  Implicitly search the file system for module map files.
  -finline-functions      Inline suitable functions
  -finline-hint-functions Inline functions which are (explicitly or implicitly) marked inline
  -finstrument-function-entry-bare
                          Instrument function entry only, after inlining, without arguments to the instrumentation call
  -finstrument-functions-after-inlining
                          Like -finstrument-functions, but insert the calls after inlining
  -finstrument-functions  Generate calls to instrument function entry and exit
  -fintegrated-as         Enable the integrated assembler
  -fintegrated-cc1        Run cc1 in-process
  -fjump-tables           Use jump tables for lowering switches
  -fkeep-static-consts    Keep static const variables if unused
  -flax-vector-conversions=<value>
                          Enable implicit vector bit-casts
  -flto-jobs=<value>      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=<value>           Set LTO mode to either 'full' or 'thin'
  -flto                   Enable LTO in 'full' mode
  -fmacro-prefix-map=<value>
                          remap file source paths in predefined preprocessor macros
  -fmath-errno            Require math functions to indicate errors by setting errno
  -fmax-tokens=<value>    Max total number of preprocessed tokens for -Wmax-tokens.
  -fmax-type-align=<value>
                          Specify the maximum alignment to enforce on pointers lacking an explicit alignment
  -fmerge-all-constants   Allow merging of constants
  -fmessage-length=<value>
                          Format message diagnostics so that they fit within N columns
  -fmodule-file=[<name>=]<file>
                          Specify the mapping of module name to precompiled module file, or load a module file if name is omitted.
  -fmodule-map-file=<file>
                          Load this module map file
  -fmodule-name=<name>    Specify the name of the module to build
  -fmodules-cache-path=<directory>
                          Specify the module cache path
  -fmodules-decluse       Require declaration of modules used within a module
  -fmodules-disable-diagnostic-validation
                          Disable validation of the diagnostic options when loading the module
  -fmodules-ignore-macro=<value>
                          Ignore the definition of the given macro when building and loading modules
  -fmodules-prune-after=<seconds>
                          Specify the interval (in seconds) after which a module file will be considered unused
  -fmodules-prune-interval=<seconds>
                          Specify the interval (in seconds) between attempts to prune the module cache
  -fmodules-search-all    Search even non-imported modules to resolve references
  -fmodules-strict-decluse
                          Like -fmodules-decluse but requires all headers to be in modules
  -fmodules-ts            Enable support for the C++ Modules TS
  -fmodules-user-build-path <directory>
                          Specify the module user build path
  -fmodules-validate-input-files-content
                          Validate PCM input files based on content if mtime differs
  -fmodules-validate-once-per-build-session
                          Don't verify input files for the modules if the module has been successfully validated or loaded during this build session
  -fmodules-validate-system-headers
                          Validate the system headers that a module depends on when loading the module
  -fmodules               Enable the 'modules' language feature
  -fms-compatibility-version=<value>
                          Dot-separated value representing the Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
  -fms-compatibility      Enable full Microsoft Visual C++ compatibility
  -fms-extensions         Accept some non-standard constructs supported by the Microsoft compiler
  -fmsc-version=<value>   Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
  -fnew-alignment=<align> Specifies the largest alignment guaranteed by '::operator new(size_t)'
  -fno-access-control     
  -fno-addrsig            Don't emit an address-significance table
  -fno-allow-editor-placeholders
                          
  -fno-asm-blocks         
  -fno-assume-sane-operator-new
                          Don't assume that C++'s global operator new can't alias any pointer
  -fno-autolink           Disable generation of linker directives for automatic library linking
  -fno-blocks             
  -fno-builtin-<value>    Disable implicit builtin knowledge of a specific function
  -fno-builtin            Disable implicit builtin knowledge of functions
  -fno-c++-static-destructors
                          Disable C++ static destructor registration
  -fno-caret-diagnostics  
  -fno-char8_t            Disable C++ builtin type char8_t
  -fno-color-diagnostics  Disable colors in diagnostics
  -fno-common             Compile common globals like normal definitions
  -fno-complete-member-pointers
                          Do not require member pointer base types to be complete if they would be significant under the Microsoft ABI
  -fno-constant-cfstrings Disable creation of CodeFoundation-type constant strings
  -fno-coroutines-ts      
  -fno-coverage-mapping   Disable code coverage analysis
  -fno-crash-diagnostics  Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash
  -fno-cuda-approx-transcendentals
                          Don't use approximate transcendental functions
  -fno-cuda-short-ptr     
  -fno-cxx-exceptions     
  -fno-data-sections      
  -fno-debug-info-for-profiling
                          
  -fno-debug-macro        Do not emit macro debug information
  -fno-debug-ranges-base-address
                          
  -fno-declspec           Disallow __declspec as a keyword
  -fno-delayed-template-parsing
                          Disable delayed template parsing
  -fno-delete-null-pointer-checks
                          Do not treat usage of null pointers as undefined behavior
  -fno-diagnostics-fixit-info
                          Do not include fixit information in diagnostics
  -fno-digraphs           Disallow alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:'
  -fno-discard-value-names
                          Do not discard value names in LLVM IR
  -fno-dollars-in-identifiers
                          Disallow '$' in identifiers
  -fno-double-square-bracket-attributes
                          Disable '[[]]' attributes in all C and C++ language modes
  -fno-dwarf-directory-asm
                          
  -fno-elide-constructors Disable C++ copy constructor elision
  -fno-elide-type         Do not elide types when printing diagnostics
  -fno-exceptions         Disable support for exception handling
  -fno-experimental-new-pass-manager
                          Disables an experimental new pass manager in LLVM.
  -fno-experimental-relative-c++-abi-vtables
                          Do not use the experimental C++ class ABI for classes with virtual tables
  -fno-fast-math          
  -fno-fine-grained-bitfield-accesses
                          Use large-integer access for consecutive bitfield runs.
  -fno-fixed-point        Disable fixed point types
  -fno-force-dwarf-frame  
  -fno-force-emit-vtables 
  -fno-force-enable-int128
                          Disable support for int128_t type
  -fno-function-sections  
  -fno-global-isel        Disables the global instruction selector
  -fno-gnu-inline-asm     Disable GNU style inline asm
  -fno-gnu89-inline       
  -fno-gpu-allow-device-init
                          Don't allow device side init function in HIP
  -fno-gpu-rdc            
  -fno-hip-new-launch-api Don't use new kernel launching API for HIP
  -fno-integrated-as      Disable the integrated assembler
  -fno-integrated-cc1     Spawn a separate process for each cc1
  -fno-jump-tables        Do not use jump tables for lowering switches
  -fno-keep-static-consts Don't keep static const variables if unused
  -fno-lto                Disable LTO mode (default)
  -fno-math-errno         
  -fno-merge-all-constants
                          Disallow merging of constants
  -fno-no-access-control  Disable C++ access control
  -fno-objc-infer-related-result-type
                          do not infer Objective-C related result type based on method family
  -fno-operator-names     Do not treat C++ operator name keywords as synonyms for operators
  -fno-pch-codegen        Do not generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
  -fno-pch-debuginfo      Do not generate debug info for types in an object file built from this PCH and do not generate them elsewhere
  -fno-plt                Use GOT indirection instead of PLT to make external function calls (x86 only)
  -fno-preserve-as-comments
                          Do not preserve comments in inline assembly
  -fno-profile-generate   Disable generation of profile instrumentation.
  -fno-profile-instr-generate
                          Disable generation of profile instrumentation.
  -fno-profile-instr-use  Disable using instrumentation data for profile-guided optimization
  -fno-register-global-dtors-with-atexit
                          Don't use atexit or __cxa_atexit to register global destructors
  -fno-reroll-loops       
  -fno-rewrite-imports    
  -fno-rewrite-includes   
  -fno-ropi               
  -fno-rtlib-add-rpath    Do not add -rpath with architecture-specific resource directory to the linker flags
  -fno-rtti-data          Disable generation of RTTI data
  -fno-rtti               Disable generation of rtti information
  -fno-rwpi               
  -fno-sanitize-address-poison-custom-array-cookie
                          Disable poisoning array cookies when using custom operator new[] in AddressSanitizer
  -fno-sanitize-address-use-after-scope
                          Disable use-after-scope detection in AddressSanitizer
  -fno-sanitize-address-use-odr-indicator
                          Disable ODR indicator globals
  -fno-sanitize-blacklist Don't use blacklist file for sanitizers
  -fno-sanitize-cfi-canonical-jump-tables
                          Do not make the jump table addresses canonical in the symbol table
  -fno-sanitize-cfi-cross-dso
                          Disable control flow integrity (CFI) checks for cross-DSO calls.
  -fno-sanitize-coverage=<value>
                          Disable specified features of coverage instrumentation for Sanitizers
  -fno-sanitize-memory-track-origins
                          Disable origins tracking in MemorySanitizer
  -fno-sanitize-memory-use-after-dtor
                          Disable use-after-destroy detection in MemorySanitizer
  -fno-sanitize-recover=<value>
                          Disable recovery for specified sanitizers
  -fno-sanitize-stats     Disable sanitizer statistics gathering.
  -fno-sanitize-thread-atomics
                          Disable atomic operations instrumentation in ThreadSanitizer
  -fno-sanitize-thread-func-entry-exit
                          Disable function entry/exit instrumentation in ThreadSanitizer
  -fno-sanitize-thread-memory-access
                          Disable memory access instrumentation in ThreadSanitizer
  -fno-sanitize-trap=<value>
                          Disable trapping for specified sanitizers
  -fno-sanitize-trap      Disable trapping for all sanitizers
  -fno-short-wchar        Force wchar_t to be an unsigned int
  -fno-show-column        Do not include column number on diagnostics
  -fno-show-source-location
                          Do not include source location information with diagnostics
  -fno-signed-char        char is unsigned
  -fno-signed-zeros       Allow optimizations that ignore the sign of floating point zeros
  -fno-spell-checking     Disable spell-checking
  -fno-split-lto-unit     
  -fno-stack-clash-protection
                          Disable stack clash protection
  -fno-stack-protector    Disable the use of stack protectors
  -fno-stack-size-section 
  -fno-standalone-debug   Limit debug information produced to reduce size of debug binary
  -fno-strict-float-cast-overflow
                          Relax language rules and try to match the behavior of the target's native float-to-int conversion instructions
  -fno-strict-return      Don't treat control flow paths that fall off the end of a non-void function as unreachable
  -fno-sycl               Disable SYCL kernels compilation for device
  -fno-temp-file          Directly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes
  -fno-threadsafe-statics Do not emit code to make initialization of local statics thread safe
  -fno-trigraphs          Do not process trigraph sequences
  -fno-unique-basic-block-section-names
                          
  -fno-unique-internal-linkage-names
                          
  -fno-unique-section-names
                          Don't use unique names for text and data sections
  -fno-unroll-loops       Turn off loop unroller
  -fno-use-cxa-atexit     Don't use __cxa_atexit for calling destructors
  -fno-use-init-array     Use .ctors/.dtors instead of .init_array/.fini_array
  -fno-use-line-directives
                          
  -fno-virtual-function-elimination
                          
  -fno-whole-program-vtables
                          
  -fno-xray-always-emit-customevents
                          
  -fno-xray-always-emit-typedevents
                          
  -fno-xray-function-index
                          Omit function index section at the expense of single-function patching performance
  -fno-xray-ignore-loops  
  -fno-xray-instrument    
  -fno-zero-initialized-in-bss
                          Don't place zero initialized data in BSS
  -fno-zvector            
  -fobjc-arc-exceptions   Use EH-safe code when synthesizing retains and releases in -fobjc-arc
  -fobjc-arc              Synthesize retain and release calls for Objective-C pointers
  -fobjc-exceptions       Enable Objective-C exceptions
  -fobjc-runtime=<value>  Specify the target Objective-C runtime kind and version
  -fobjc-weak             Enable ARC-style weak references in Objective-C
  -fopenmp-simd           Emit OpenMP code only for SIMD-based constructs.
  -fopenmp-targets=<value>
                          Specify comma-separated list of triples OpenMP offloading targets to be supported
  -fopenmp                Parse OpenMP pragmas and generate parallel code.
  -foptimization-record-file=<file>
                          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=<regex>
                          Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
  -forder-file-instrumentation
                          Generate instrumented code to collect order file into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)
  -fpack-struct=<value>   Specify the default maximum struct packing alignment
  -fpascal-strings        Recognize and construct Pascal-style string literals
  -fpass-plugin=<dsopath> Load pass plugin from a dynamic shared object file (only with new pass manager).
  -fpatchable-function-entry=<N,M>
                          Generate M NOPs before function entry and N-M NOPs after function entry
  -fpcc-struct-return     Override the default ABI to return all structs on the stack
  -fpch-codegen           Generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
  -fpch-debuginfo         Generate debug info for types in an object file built from this PCH and do not generate them elsewhere
  -fpch-instantiate-templates
                          Instantiate templates already while building a PCH
  -fpch-validate-input-files-content
                          Validate PCH input files based on content if mtime differs
  -fplt                   
  -fplugin=<dsopath>      Load the named plugin (dynamic shared object)
  -fprebuilt-module-path=<directory>
                          Specify the prebuilt module path
  -fpreserve-as-comments  
  -fprofile-exclude-files=<value>
                          Instrument only functions from files where names don't match all the regexes separated by a semi-colon
  -fprofile-filter-files=<value>
                          Instrument only functions from files where names match any regex separated by a semi-colon
  -fprofile-generate=<directory>
                          Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)
  -fprofile-generate      Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM_PROFILE_FILE env var)
  -fprofile-instr-generate=<file>
                          Generate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var)
  -fprofile-instr-generate
                          Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)
  -fprofile-instr-use=<value>
                          Use instrumentation data for profile-guided optimization
  -fprofile-remapping-file=<file>
                          Use the remappings described in <file> to match the profile data against names in the program
  -fprofile-sample-accurate
                          Specifies that the sample profile is accurate
  -fprofile-sample-use=<value>
                          Enable sample-based profile guided optimizations
  -fprofile-use=<pathname>
                          Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
  -freciprocal-math       Allow division operations to be reassociated
  -freg-struct-return     Override the default ABI to return small structs in registers
  -fregister-global-dtors-with-atexit
                          Use atexit or __cxa_atexit to register global destructors
  -frelaxed-template-template-args
                          Enable C++17 relaxed template template argument matching
  -freroll-loops          Turn on loop reroller
  -frewrite-imports       
  -frewrite-includes      
  -fropi                  Generate read-only position independent code (ARM only)
  -frtlib-add-rpath       Add -rpath with architecture-specific resource directory to the linker flags
  -frtti-data             
  -frtti                  
  -frwpi                  Generate read-write position independent code (ARM only)
  -fsanitize-address-field-padding=<value>
                          Level of field padding for AddressSanitizer
  -fsanitize-address-globals-dead-stripping
                          Enable linker dead stripping of globals in AddressSanitizer
  -fsanitize-address-poison-custom-array-cookie
                          Enable poisoning array cookies when using custom operator new[] in AddressSanitizer
  -fsanitize-address-use-after-scope
                          Enable use-after-scope detection in AddressSanitizer
  -fsanitize-address-use-odr-indicator
                          Enable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size
  -fsanitize-blacklist=<value>
                          Path to blacklist file for sanitizers
  -fsanitize-cfi-canonical-jump-tables
                          Make the jump table addresses canonical in the symbol table
  -fsanitize-cfi-cross-dso
                          Enable control flow integrity (CFI) checks for cross-DSO calls.
  -fsanitize-cfi-icall-generalize-pointers
                          Generalize pointers in CFI indirect call type signature checks
  -fsanitize-coverage-allowlist=<value>
                          Restrict sanitizer coverage instrumentation exclusively to modules and functions that match the provided special case list, except the blocked ones
  -fsanitize-coverage-blacklist=<value>
                          Deprecated, use -fsanitize-coverage-blocklist= instead
  -fsanitize-coverage-blocklist=<value>
                          Disable sanitizer coverage instrumentation for modules and functions that match the provided special case list, even the allowed ones
  -fsanitize-coverage-whitelist=<value>
                          Deprecated, use -fsanitize-coverage-allowlist= instead
  -fsanitize-coverage=<value>
                          Specify the type of coverage instrumentation for Sanitizers
  -fsanitize-hwaddress-abi=<value>
                          Select the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor). This option is currently unused.
  -fsanitize-memory-track-origins=<value>
                          Enable origins tracking in MemorySanitizer
  -fsanitize-memory-track-origins
                          Enable origins tracking in MemorySanitizer
  -fsanitize-memory-use-after-dtor
                          Enable use-after-destroy detection in MemorySanitizer
  -fsanitize-recover=<value>
                          Enable recovery for specified sanitizers
  -fsanitize-stats        Enable sanitizer statistics gathering.
  -fsanitize-system-blacklist=<value>
                          Path to system blacklist file for sanitizers
  -fsanitize-thread-atomics
                          Enable atomic operations instrumentation in ThreadSanitizer (default)
  -fsanitize-thread-func-entry-exit
                          Enable function entry/exit instrumentation in ThreadSanitizer (default)
  -fsanitize-thread-memory-access
                          Enable memory access instrumentation in ThreadSanitizer (default)
  -fsanitize-trap=<value> Enable trapping for specified sanitizers
  -fsanitize-trap         Enable trapping for all sanitizers
  -fsanitize-undefined-strip-path-components=<number>
                          Strip (or keep only, if negative) a given number of path components when emitting check metadata.
  -fsanitize=<check>      Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
  -fsave-optimization-record=<format>
                          Generate an optimization record file in a specific format
  -fsave-optimization-record
                          Generate a YAML optimization record file
  -fseh-exceptions        Use SEH style exceptions
  -fshort-enums           Allocate to an enum type only as many bytes as it needs for the declared range of possible values
  -fshort-wchar           Force wchar_t to be a short unsigned int
  -fshow-column           
  -fshow-overloads=<value>
                          Which overload candidates to show when overload resolution fails: best|all; defaults to all
  -fsigned-char           char is signed
  -fsized-deallocation    Enable C++14 sized global deallocation functions
  -fsjlj-exceptions       Use SjLj style exceptions
  -fslp-vectorize         Enable the superword-level parallelism vectorization passes
  -fsplit-dwarf-inlining  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
  -fsplit-lto-unit        Enables splitting of the LTO unit
  -fstack-clash-protection
                          Enable stack clash protection
  -fstack-protector-all   Enable stack protectors for all functions
  -fstack-protector-strong
                          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
  -fstack-protector       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
  -fstack-size-section    Emit section containing metadata on function stack sizes
  -fstandalone-debug      Emit full debug info for all types used by the program
  -fstrict-enums          Enable optimizations based on the strict definition of an enum's value range
  -fstrict-float-cast-overflow
                          Assume that overflowing float-to-int casts are undefined (default)
  -fstrict-return         
  -fstrict-vtable-pointers
                          Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
  -fsycl                  Enable SYCL kernels compilation for device
  -fsystem-module         Build this module as a system module. Only used with -emit-module
  -fthin-link-bitcode=<value>
                          Write minimized bitcode to <file> for the ThinLTO thin link only
  -fthinlto-index=<value> Perform ThinLTO importing using provided function summary index
  -ftime-trace-granularity=<value>
                          Minimum time granularity (in microseconds) traced by time profiler
  -ftime-trace            Turn on time profiler. Generates JSON file based on output filename.
  -ftrap-function=<value> Issue call to specified function rather than a trap instruction
  -ftrapv-handler=<function name>
                          Specify the function to be called on overflow
  -ftrapv                 Trap on integer overflow
  -ftrigraphs             Process trigraph sequences
  -ftrivial-auto-var-init-stop-after=<value>
                          Stop initializing trivial automatic stack variables after the specified number of instances
  -ftrivial-auto-var-init=<value>
                          Initialize trivial automatic stack variables: uninitialized (default) | pattern
  -funique-basic-block-section-names
                          Use unique names for basic block sections (ELF Only)
  -funique-internal-linkage-names
                          Uniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path
  -funique-section-names  
  -funroll-loops          Turn on loop unroller
  -fuse-init-array        
  -fuse-line-directives   Use #line in preprocessed output
  -fvalidate-ast-input-files-content
                          Compute 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=<value>        Use the given vector functions library
  -fvectorize             Enable the loop vectorization passes
  -fverbose-asm           Generate verbose assembly output
  -fvirtual-function-elimination
                          Enables dead virtual function elimination optimization. Requires -flto=full
  -fvisibility-global-new-delete-hidden
                          Give global C++ operator new and delete declarations hidden visibility
  -fvisibility-inlines-hidden
                          Give inline C++ member functions hidden visibility by default
  -fvisibility-ms-compat  Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
  -fvisibility=<value>    Set the default symbol visibility for all global declarations
  -fwasm-exceptions       Use WebAssembly style exceptions
  -fwhole-program-vtables Enables whole-program vtable optimization. Requires -flto
  -fwrapv                 Treat signed integer overflow as two's complement
  -fwritable-strings      Store string literals as writable data
  -fxray-always-emit-customevents
                          Always emit __xray_customevent(...) calls even if the containing function is not always instrumented
  -fxray-always-emit-typedevents
                          Always emit __xray_typedevent(...) calls even if the containing function is not always instrumented
  -fxray-always-instrument= <value>
                          DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
  -fxray-attr-list= <value>
                          Filename defining the list of functions/types for imbuing XRay attributes.
  -fxray-function-index   
  -fxray-ignore-loops     Don't instrument functions with loops unless they also meet the minimum function size
  -fxray-instruction-threshold= <value>
                          Sets the minimum function size to instrument with XRay
  -fxray-instrumentation-bundle= <value>
                          Select which XRay instrumentation points to emit. Options: all, none, function-entry, function-exit, function, custom. Default is 'all'.  'function' includes both 'function-entry' and 'function-exit'.
  -fxray-instrument       Generate XRay instrumentation sleds on function entry and exit
  -fxray-link-deps        Tells clang to add the link dependencies for XRay.
  -fxray-modes= <value>   List of modes to link in by default into XRay instrumented binaries.
  -fxray-never-instrument= <value>
                          DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
  -fzero-initialized-in-bss
                          
  -fzvector               Enable System z vector language extension
  -F <value>              Add directory to framework include search path
  --gcc-toolchain=<value> Use the gcc toolchain at the given directory
  -gcodeview-ghash        Emit type record hashes in a .debug$H section
  -gcodeview              Generate CodeView debug information
  -gdwarf-2               Generate source-level debug information with dwarf version 2
  -gdwarf-3               Generate source-level debug information with dwarf version 3
  -gdwarf-4               Generate source-level debug information with dwarf version 4
  -gdwarf-5               Generate source-level debug information with dwarf version 5
  -gdwarf                 Generate source-level debug information with the default dwarf version
  -gembed-source          Embed source text in DWARF debug sections
  -gline-directives-only  Emit debug line info directives only
  -gline-tables-only      Emit debug line number tables only
  -gmodules               Generate debug info with external references to clang modules or precompiled headers
  -gno-embed-source       Restore the default behavior of not embedding source text in DWARF debug sections
  -gno-inline-line-tables Don't emit inline line tables
  --gpu-max-threads-per-block=<value>
                          Default max threads per block for kernel launch bounds for HIP
  -gsplit-dwarf=<value>   Set DWARF fission mode to either 'split' or 'single'
  -gz=<value>             DWARF debug sections compression type
  -gz                     DWARF debug sections compression type
  -G <size>               Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
  -g                      Generate source-level debug information
  --help-hidden           Display help for hidden options
  -help                   Display available options
  --hip-device-lib=<value>
                          HIP device library
  --hip-link              Link clang-offload-bundler bundles for HIP
  --hip-version=<value>   HIP version in the format of major.minor.patch
  -H                      Show header includes and nesting depth
  -I-                     Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
  -ibuiltininc            Enable builtin #include directories even when -nostdinc is used before or after -ibuiltininc. Using -nobuiltininc after the option disables it
  -idirafter <value>      Add directory to AFTER include search path
  -iframeworkwithsysroot <directory>
                          Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
  -iframework <value>     Add directory to SYSTEM framework search path
  -imacros <file>         Include macros from file before parsing
  -include-pch <file>     Include precompiled header file
  -include <file>         Include file before parsing
  -index-header-map       Make the next included directory (-I or -F) an indexer header map
  -iprefix <dir>          Set the -iwithprefix/-iwithprefixbefore prefix
  -iquote <directory>     Add directory to QUOTE include search path
  -isysroot <dir>         Set the system root directory (usually /)
  -isystem-after <directory>
                          Add directory to end of the SYSTEM include search path
  -isystem <directory>    Add directory to SYSTEM include search path
  -ivfsoverlay <value>    Overlay the virtual filesystem described by file over the real file system
  -iwithprefixbefore <dir>
                          Set directory to include search path with prefix
  -iwithprefix <dir>      Set directory to SYSTEM include search path with prefix
  -iwithsysroot <directory>
                          Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
  -I <dir>                Add directory to include search path
  --libomptarget-nvptx-path=<value>
                          Path to libomptarget-nvptx libraries
  -L <dir>                Add directory to library search path
  -mabicalls              Enable SVR4-style position-independent code (Mips only)
  -maix-struct-return     Return all structs in memory (PPC32 only)
  -malign-branch-boundary=<value>
                          Specify the boundary's size to align branches
  -malign-branch=<value>  Specify types of branches to align
  -malign-double          Align doubles to two words in structs (x86 only)
  -mbackchain             Link stack frames through backchain on System Z
  -mbranch-protection=<value>
                          Enforce targets of indirect branches and function returns
  -mbranches-within-32B-boundaries
                          Align selected branches (fused, jcc, jmp) within 32-byte boundary
  -mcmodel=medany         Equivalent to -mcmodel=medium, compatible with RISC-V gcc.
  -mcmodel=medlow         Equivalent to -mcmodel=small, compatible with RISC-V gcc.
  -mcmse                  Allow use of CMSE (Armv8-M Security Extensions)
  -mcode-object-v3        Enable code object v3 (AMDGPU only)
  -mcrc                   Allow use of CRC instructions (ARM/Mips only)
  -mcumode                CU wavefront execution mode is used (AMDGPU only)
  -mdouble=<value>        Force double to be 32 bits or 64 bits
  -MD                     Write a depfile containing user and system headers
  -meabi <value>          Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
  -membedded-data         Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
  -menable-experimental-extensions
                          Enable use of experimental RISC-V extensions.
  -mexec-model=<value>    Execution model (WebAssembly only)
  -mexecute-only          Disallow generation of data access to code sections (ARM only)
  -mextern-sdata          Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
  -mfentry                Insert calls to fentry at function entry (x86/SystemZ only)
  -mfix-cortex-a53-835769 Workaround Cortex-A53 erratum 835769 (AArch64 only)
  -mfp32                  Use 32-bit floating point registers (MIPS only)
  -mfp64                  Use 64-bit floating point registers (MIPS only)
  -MF <file>              Write depfile output from -MMD, -MD, -MM, or -M to <file>
  -mgeneral-regs-only     Generate code which only uses the general purpose registers (AArch64 only)
  -mglobal-merge          Enable merging of globals
  -mgpopt                 Use GP relative accesses for symbols known to be in a small data section (MIPS)
  -MG                     Add missing headers to depfile
  -mharden-sls=<value>    Select straight-line speculation hardening scope
  -mhvx-length=<value>    Set Hexagon Vector Length
  -mhvx=<value>           Enable Hexagon Vector eXtensions
  -mhvx                   Enable Hexagon Vector eXtensions
  -miamcu                 Use Intel MCU ABI
  --migrate               Run the migrator
  -mincremental-linker-compatible
                          (integrated-as) Emit an object file which can be used with an incremental linker
  -mindirect-jump=<value> Change indirect jump instructions to inhibit speculation
  -mios-version-min=<value>
                          Set iOS deployment target
  -MJ <value>             Write a compilation database entry per input
  -mllvm <value>          Additional arguments to forward to LLVM's option processing
  -mlocal-sdata           Extend the -G behaviour to object local data (MIPS)
  -mlong-calls            Generate branches with extended addressability, usually via indirect jumps.
  -mlong-double-128       Force long double to be 128 bits
  -mlong-double-64        Force long double to be 64 bits
  -mlong-double-80        Force long double to be 80 bits, padded to 128 bits for storage
  -mlvi-cfi               Enable only control-flow mitigations for Load Value Injection (LVI)
  -mlvi-hardening         Enable all mitigations for Load Value Injection (LVI)
  -mmacosx-version-min=<value>
                          Set Mac OS X deployment target
  -mmadd4                 Enable the generation of 4-operand madd.s, madd.d and related instructions.
  -MMD                    Write a depfile containing user headers
  -mmemops                Enable generation of memop instructions
  -mms-bitfields          Set the default structure layout to be compatible with the Microsoft compiler standard
  -mmsa                   Enable MSA ASE (MIPS only)
  -mmt                    Enable MT ASE (MIPS only)
  -MM                     Like -MMD, but also implies -E and writes to stdout by default
  -mno-abicalls           Disable SVR4-style position-independent code (Mips only)
  -mno-code-object-v3     Disable code object v3 (AMDGPU only)
  -mno-crc                Disallow use of CRC instructions (Mips only)
  -mno-cumode             WGP wavefront execution mode is used (AMDGPU only)
  -mno-embedded-data      Do not place constants in the .rodata section instead of the .sdata if they meet the -G <size> threshold (MIPS)
  -mno-execute-only       Allow generation of data access to code sections (ARM only)
  -mno-extern-sdata       Do not assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
  -mno-fix-cortex-a53-835769
                          Don't workaround Cortex-A53 erratum 835769 (AArch64 only)
  -mno-global-merge       Disable merging of globals
  -mno-gpopt              Do not use GP relative accesses for symbols known to be in a small data section (MIPS)
  -mno-hvx                Disable Hexagon Vector eXtensions
  -mno-implicit-float     Don'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-sdata        Do not extend the -G behaviour to object local data (MIPS)
  -mno-long-calls         Restore the default behaviour of not generating long calls
  -mno-lvi-cfi            Disable control-flow mitigations for Load Value Injection (LVI)
  -mno-lvi-hardening      Disable mitigations for Load Value Injection (LVI)
  -mno-madd4              Disable the generation of 4-operand madd.s, madd.d and related instructions.
  -mno-memops             Disable generation of memop instructions
  -mno-movt               Disallow use of movt/movw pairs (ARM only)
  -mno-ms-bitfields       Do not set the default structure layout to be compatible with the Microsoft compiler standard
  -mno-msa                Disable MSA ASE (MIPS only)
  -mno-mt                 Disable MT ASE (MIPS only)
  -mno-neg-immediates     Disallow converting instructions with negative immediates to their negation or inversion.
  -mno-nvj                Disable generation of new-value jumps
  -mno-nvs                Disable generation of new-value stores
  -mno-outline            Disable function outlining (AArch64 only)
  -mno-packets            Disable generation of instruction packets
  -mno-relax              Disable linker relaxation
  -mno-restrict-it        Allow generation of deprecated IT blocks for ARMv8. It is off by default for ARMv8 Thumb mode
  -mno-save-restore       Disable using library calls for save and restore
  -mno-seses              Disable speculative execution side effect suppression (SESES)
  -mno-sram-ecc           Disable SRAM ECC (AMDGPU only)
  -mno-stack-arg-probe    Disable stack probes which are enabled by default
  -mno-tls-direct-seg-refs
                          Disable direct TLS access through segment registers
  -mno-unaligned-access   Force all memory accesses to be aligned (AArch32/AArch64 only)
  -mno-wavefrontsize64    Wavefront size 32 is used
  -mno-xnack              Disable XNACK (AMDGPU only)
  -mnocrc                 Disallow use of CRC instructions (ARM only)
  -mnop-mcount            Generate mcount/__fentry__ calls as nops. To activate they need to be patched in.
  -mnvj                   Enable generation of new-value jumps
  -mnvs                   Enable generation of new-value stores
  -module-dependency-dir <value>
                          Directory to dump module dependencies to
  -module-file-info       Provide information about a particular module file
  -momit-leaf-frame-pointer
                          Omit frame pointer setup for leaf functions
  -moutline               Enable function outlining (AArch64 only)
  -mpacked-stack          Use packed stack layout (SystemZ only).
  -mpackets               Enable generation of instruction packets
  -mpad-max-prefix-size=<value>
                          Specify maximum number of prefixes to use for padding
  -mpie-copy-relocations  Use copy relocations support for PIE builds
  -mprefer-vector-width=<value>
                          Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
  -MP                     Create phony target for each dependency (other than main file)
  -mqdsp6-compat          Enable hexagon-qdsp6 backward compatibility
  -MQ <value>             Specify name of main file output to quote in depfile
  -mrecord-mcount         Generate a __mcount_loc section entry for each __fentry__ call.
  -mrelax-all             (integrated-as) Relax all machine instructions
  -mrelax                 Enable linker relaxation
  -mrestrict-it           Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
  -mrtd                   Make StdCall calling convention the default
  -msave-restore          Enable using library calls for save and restore
  -mseses                 Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
  -msign-return-address=<value>
                          Select return address signing scope
  -msmall-data-limit=<value>
                          Put global and static data smaller than the limit into a special section
  -msoft-float            Use software floating point
  -msram-ecc              Enable SRAM ECC (AMDGPU only)
  -mstack-alignment=<value>
                          Set the stack alignment
  -mstack-arg-probe       Enable stack probes
  -mstack-probe-size=<value>
                          Set the stack probe size
  -mstackrealign          Force realign the stack at entry to every function
  -msvr4-struct-return    Return small structs in registers (PPC32 only)
  -mthread-model <value>  The thread model to use, e.g. posix, single (posix by default)
  -mtls-direct-seg-refs   Enable direct TLS access through segment registers (default)
  -mtls-size=<value>      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=<value>            Thread pointer access method (AArch32/AArch64 only)
  -mtune=<value>          Accepted for compatibility with GCC. Currently has no effect.
  -MT <value>             Specify name of main file output in depfile
  -munaligned-access      Allow memory accesses to be unaligned (AArch32/AArch64 only)
  -MV                     Use NMake/Jom format for the depfile
  -mwavefrontsize64       Wavefront size 64 is used
  -mxnack                 Enable XNACK (AMDGPU only)
  -M                      Like -MD, but also implies -E and writes to stdout by default
  --no-cuda-include-ptx=<value>
                          Do not include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once.
  --no-cuda-version-check Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.
  --no-offload-arch=<value>
                          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=<prefix>
                          Treat all #include paths starting with <prefix> as not including a system header.
  -nobuiltininc           Disable builtin #include directories
  -nogpulib               Do 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-property Make migration to 'atomic' properties
  -objcmt-migrate-all     Enable migration to modern ObjC
  -objcmt-migrate-annotation
                          Enable migration to property and method annotations
  -objcmt-migrate-designated-init
                          Enable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods
  -objcmt-migrate-instancetype
                          Enable migration to infer instancetype for method result type
  -objcmt-migrate-literals
                          Enable migration to modern ObjC literals
  -objcmt-migrate-ns-macros
                          Enable migration to NS_ENUM/NS_OPTIONS macros
  -objcmt-migrate-property-dot-syntax
                          Enable migration of setter/getter messages to property-dot syntax
  -objcmt-migrate-property
                          Enable migration to modern ObjC property
  -objcmt-migrate-protocol-conformance
                          Enable migration to add protocol conformance on classes
  -objcmt-migrate-readonly-property
                          Enable migration to modern ObjC readonly property
  -objcmt-migrate-readwrite-property
                          Enable migration to modern ObjC readwrite property
  -objcmt-migrate-subscripting
                          Enable migration to modern ObjC subscripting
  -objcmt-ns-nonatomic-iosonly
                          Enable migration to use NS_NONATOMIC_IOSONLY macro for setting property's 'atomic' attribute
  -objcmt-returns-innerpointer-property
                          Enable migration to annotate property with NS_RETURNS_INNER_POINTER
  -objcmt-whitelist-dir-path=<value>
                          Only modify files with a filename contained in the provided directory path
  -ObjC                   Treat source input files as Objective-C inputs
  --offload-arch=<value>  CUDA/HIP offloading device architecture (e.g. sm_35, gfx906).  May be specified more than once.
  -o <file>               Write output to <file>
  -pg                     Enable mcount instrumentation
  -pipe                   Use pipes between commands, when possible
  --precompile            Only precompile the input
  -print-effective-triple Print the effective target triple
  -print-file-name=<file> Print the full library path of <file>
  -print-ivar-layout      Enable Objective-C Ivar layout bitmap print trace
  -print-libgcc-file-name Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang_rt.builtins.*.a")
  -print-prog-name=<name> Print the full program path of <name>
  -print-resource-dir     Print the resource directory pathname
  -print-search-dirs      Print the paths used for finding libraries and programs
  -print-supported-cpus   Print supported cpu models for the given target (if target is not specified, it will print the supported cpus for the default target)
  -print-target-triple    Print the normalized target triple
  -print-targets          Print the registered targets
  -pthread                Support POSIX threads in generated code
  --ptxas-path=<value>    Path to ptxas (used for compiling CUDA code)
  -P                      Disable linemarker output in -E mode
  -Qn                     Do not emit metadata containing compiler name and version
  -Qunused-arguments      Don't emit warning for unused driver arguments
  -Qy                     Emit metadata containing compiler name and version
  -relocatable-pch        Whether to build a relocatable precompiled header
  -rewrite-legacy-objc    Rewrite Legacy Objective-C source to C++
  -rewrite-objc           Rewrite Objective-C source to C++
  --rocm-device-lib-path=<value>
                          ROCm device library path. Alternative to rocm-path.
  --rocm-path=<value>     ROCm installation path, used for finding and automatically linking required bitcode libraries.
  -Rpass-analysis=<value> Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
  -Rpass-missed=<value>   Report missed transformations by optimization passes whose name matches the given POSIX regular expression
  -Rpass=<value>          Report transformations performed by optimization passes whose name matches the given POSIX regular expression
  -rtlib=<value>          Compiler runtime library to use
  -R<remark>              Enable the specified remark
  -save-stats=<value>     Save llvm statistics.
  -save-stats             Save llvm statistics.
  -save-temps=<value>     Save intermediate compilation results.
  -save-temps             Save intermediate compilation results
  -serialize-diagnostics <value>
                          Serialize compiler diagnostics to a file
  -shared-libsan          Dynamically link the sanitizer runtime
  -static-libsan          Statically link the sanitizer runtime
  -static-openmp          Use the static host OpenMP runtime while linking.
  -std=<value>            Language standard to compile for
  -stdlib++-isystem <directory>
                          Use directory as the C++ standard library include path
  -stdlib=<value>         C++ standard library to use
  -sycl-std=<value>       SYCL language standard to compile for.
  --system-header-prefix=<prefix>
                          Treat all #include paths starting with <prefix> as including a system header.
  -S                      Only run preprocess and compilation steps
  --target=<value>        Generate code for the given target
  -Tbss <addr>            Set starting address of BSS to <addr>
  -Tdata <addr>           Set starting address of DATA to <addr>
  -time                   Time individual commands
  -traditional-cpp        Enable some traditional CPP emulation
  -trigraphs              Process trigraph sequences
  -Ttext <addr>           Set starting address of TEXT to <addr>
  -T <script>             Specify <script> as linker script
  -undef                  undef all system defines
  -unwindlib=<value>      Unwind library to use
  -U <macro>              Undefine macro <macro>
  --verify-debug-info     Verify the binary representation of debug output
  -verify-pch             Load and verify that a pre-compiled header file is not stale
  --version               Print version information
  -v                      Show commands to run and use verbose output
  -Wa,<arg>               Pass the comma separated arguments in <arg> to the assembler
  -Wdeprecated            Enable warnings for deprecated constructs and define __DEPRECATED
  -Wl,<arg>               Pass the comma separated arguments in <arg> to the linker
  -working-directory <value>
                          Resolve file paths relative to the specified directory
  -Wp,<arg>               Pass the comma separated arguments in <arg> to the preprocessor
  -W<warning>             Enable the specified warning
  -w                      Suppress all warnings
  -Xanalyzer <arg>        Pass <arg> to the static analyzer
  -Xarch_device <arg>     Pass <arg> to the CUDA/HIP device compilation
  -Xarch_host <arg>       Pass <arg> to the CUDA/HIP host compilation
  -Xassembler <arg>       Pass <arg> to the assembler
  -Xclang <arg>           Pass <arg> to the clang compiler
  -Xcuda-fatbinary <arg>  Pass <arg> to fatbinary invocation
  -Xcuda-ptxas <arg>      Pass <arg> to the ptxas assembler
  -Xlinker <arg>          Pass <arg> to the linker
  -Xopenmp-target=<triple> <arg>
                          Pass <arg> to the target offloading toolchain identified by <triple>.
  -Xopenmp-target <arg>   Pass <arg> to the target offloading toolchain.
  -Xpreprocessor <arg>    Pass <arg> to the preprocessor
  -x <language>           Treat subsequent input files as having type <language>
  -z <arg>                Pass -z <arg> to the linker

clang++
root@kali:~# clang++ --help
OVERVIEW: clang LLVM compiler

USAGE: clang [options] file...

OPTIONS:
  -###                    Print (but do not run) the commands to run for this compilation
  --analyzer-output <value>
                          Static analyzer report output format (html|plist|plist-multi-file|plist-html|sarif|text).
  --analyze               Run the static analyzer
  -arcmt-migrate-emit-errors
                          Emit ARC errors even if the migrator can fix them
  -arcmt-migrate-report-output <value>
                          Output path for the plist report
  -B <dir>                Add <dir> to search path for binaries and object files used implicitly
  -CC                     Include comments from within macros in preprocessed output
  -cl-denorms-are-zero    OpenCL only. Allow denormals to be flushed to zero.
  -cl-fast-relaxed-math   OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__.
  -cl-finite-math-only    OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
  -cl-fp32-correctly-rounded-divide-sqrt
                          OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
  -cl-kernel-arg-info     OpenCL only. Generate kernel argument metadata.
  -cl-mad-enable          OpenCL only. Allow use of less precise MAD computations in the generated binary.
  -cl-no-signed-zeros     OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
  -cl-opt-disable         OpenCL only. This option disables all optimizations. By default optimizations are enabled.
  -cl-single-precision-constant
                          OpenCL only. Treat double precision floating-point constant as single precision constant.
  -cl-std=<value>         OpenCL language standard to compile for.
  -cl-strict-aliasing     OpenCL only. This option is added for compatibility with OpenCL 1.0.
  -cl-uniform-work-group-size
                          OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
  -cl-unsafe-math-optimizations
                          OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.
  --config <value>        Specifies configuration file
  --cuda-compile-host-device
                          Compile CUDA code for both host and device (default).  Has no effect on non-CUDA compilations.
  --cuda-device-only      Compile CUDA code for device only
  --cuda-host-only        Compile CUDA code for host only.  Has no effect on non-CUDA compilations.
  --cuda-include-ptx=<value>
                          Include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once.
  --cuda-noopt-device-debug
                          Enable device-side debug info generation. Disables ptxas optimizations.
  --cuda-path-ignore-env  Ignore environment variables to detect CUDA installation
  --cuda-path=<value>     CUDA installation path
  -cxx-isystem <directory>
                          Add directory to the C++ SYSTEM include search path
  -C                      Include comments in preprocessed output
  -c                      Only run preprocess, compile, and assemble steps
  -dD                     Print macro definitions in -E mode in addition to normal output
  -dependency-dot <value> Filename to write DOT-formatted header dependencies to
  -dependency-file <value>
                          Filename (or -) to write dependency output to
  -dI                     Print include directives in -E mode in addition to normal output
  -dM                     Print macro definitions in -E mode instead of normal output
  -D <macro>=<value>      Define <macro> to <value> (or 1 if <value> omitted)
  -emit-ast               Emit Clang AST files for source inputs
  -emit-interface-stubs   Generate Inteface Stub Files.
  -emit-llvm              Use the LLVM representation for assembler and object files
  -emit-merged-ifs        Generate Interface Stub Files, emit merged text not binary.
  --emit-static-lib       Enable linker job to emit a static library.
  -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
                          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
  -E                      Only run the preprocessor
  -fAAPCSBitfieldLoad     Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only).
  -faddrsig               Emit an address-significance table
  -faligned-allocation    Enable C++17 aligned allocation functions
  -fallow-editor-placeholders
                          Treat editor placeholders as valid source code
  -fansi-escape-codes     Use ANSI escape codes for diagnostics
  -fapple-kext            Use Apple's kernel extensions ABI
  -fapple-link-rtlib      Force linking the clang builtins runtime library
  -fapple-pragma-pack     Enable Apple gcc-compatible #pragma pack handling
  -fapplication-extension Restrict code to those available for App Extensions
  -fasm-blocks            
  -fautolink              
  -fbasic-block-sections=<value>
                          Place each function's basic blocks in unique sections (ELF Only) : all | labels | none | list=<file>
  -fblocks                Enable the 'blocks' language feature
  -fborland-extensions    Accept non-standard constructs supported by the Borland compiler
  -fbuild-session-file=<file>
                          Use the last modification time of <file> as the build session timestamp
  -fbuild-session-timestamp=<time since Epoch in seconds>
                          Time when the current build session started
  -fbuiltin-module-map    Load the clang builtins module map file.
  -fc++-static-destructors
                          
  -fcall-saved-x10        Make the x10 register call-saved (AArch64 only)
  -fcall-saved-x11        Make the x11 register call-saved (AArch64 only)
  -fcall-saved-x12        Make the x12 register call-saved (AArch64 only)
  -fcall-saved-x13        Make the x13 register call-saved (AArch64 only)
  -fcall-saved-x14        Make the x14 register call-saved (AArch64 only)
  -fcall-saved-x15        Make the x15 register call-saved (AArch64 only)
  -fcall-saved-x18        Make the x18 register call-saved (AArch64 only)
  -fcall-saved-x8         Make the x8 register call-saved (AArch64 only)
  -fcall-saved-x9         Make the x9 register call-saved (AArch64 only)
  -fcaret-diagnostics     
  -fcf-protection=<value> Instrument control-flow architecture protection. Options: return, branch, full, none.
  -fcf-protection         Enable cf-protection in 'full' mode
  -fchar8_t               Enable C++ builtin type char8_t
  -fclang-abi-compat=<version>
                          Attempt to match the ABI of Clang <version>
  -fcolor-diagnostics     Enable colors in diagnostics
  -fcomment-block-commands=<arg>
                          Treat each comma separated argument in <arg> as a documentation comment block command
  -fcommon                Place uninitialized global variables in a common block
  -fcomplete-member-pointers
                          Require member pointer base types to be complete if they would be significant under the Microsoft ABI
  -fconvergent-functions  Assume functions may be convergent
  -fcoroutines-ts         Enable support for the C++ Coroutines TS
  -fcoverage-mapping      Generate coverage mapping to enable code coverage analysis
  -fcs-profile-generate=<directory>
                          Generate instrumented code to collect context sensitive execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)
  -fcs-profile-generate   Generate instrumented code to collect context sensitive execution counts into default.profraw (overridden by LLVM_PROFILE_FILE env var)
  -fcuda-approx-transcendentals
                          Use approximate transcendental functions
  -fcuda-flush-denormals-to-zero
                          Flush denormal floating point values to zero in CUDA device mode.
  -fcuda-short-ptr        Use 32-bit pointers for accessing const/local/shared address spaces
  -fcxx-exceptions        Enable C++ exceptions
  -fdata-sections         Place each data in its own section
  -fdebug-compilation-dir <value>
                          The compilation directory to embed in the debug info.
  -fdebug-default-version=<value>
                          Default DWARF version to use, if a -g option caused DWARF debug info to be produced
  -fdebug-info-for-profiling
                          Emit extra debug info to make sample profile more accurate
  -fdebug-macro           Emit macro debug information
  -fdebug-prefix-map=<value>
                          remap file source paths in debug info
  -fdebug-ranges-base-address
                          Use DWARF base address selection entries in .debug_ranges
  -fdebug-types-section   Place debug types in their own section (ELF Only)
  -fdeclspec              Allow __declspec as a keyword
  -fdelayed-template-parsing
                          Parse templated function definitions at the end of the translation unit
  -fdelete-null-pointer-checks
                          Treat usage of null pointers as undefined behavior (default)
  -fdiagnostics-absolute-paths
                          Print absolute paths in diagnostics
  -fdiagnostics-hotness-threshold=<number>
                          Prevent optimization remarks from being output if they do not have at least this profile count
  -fdiagnostics-parseable-fixits
                          Print fix-its in machine parseable form
  -fdiagnostics-print-source-range-info
                          Print source range spans in numeric form
  -fdiagnostics-show-hotness
                          Enable profile hotness information in diagnostic line
  -fdiagnostics-show-note-include-stack
                          Display include stacks for diagnostic notes
  -fdiagnostics-show-option
                          Print option name with mappable diagnostics
  -fdiagnostics-show-template-tree
                          Print a template comparison tree for differing templates
  -fdigraphs              Enable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default)
  -fdiscard-value-names   Discard value names in LLVM IR
  -fdollars-in-identifiers
                          Allow '$' in identifiers
  -fdouble-square-bracket-attributes
                          Enable '[[]]' attributes in all C and C++ language modes
  -fdwarf-directory-asm   
  -fdwarf-exceptions      Use DWARF style exceptions
  -fembed-bitcode-marker  Embed placeholder LLVM IR data as a marker
  -fembed-bitcode=<option>
                          Embed LLVM bitcode (option: off, all, bitcode, marker)
  -fembed-bitcode         Embed LLVM IR bitcode as data
  -femit-all-decls        Emit all declarations, even if unused
  -femulated-tls          Use emutls functions to access thread_local variables
  -fenable-matrix         Enable matrix data type and related builtin functions
  -fexceptions            Enable support for exception handling
  -fexperimental-new-constant-interpreter
                          Enable the experimental new constant interpreter
  -fexperimental-new-pass-manager
                          Enables an experimental new pass manager in LLVM.
  -fexperimental-relative-c++-abi-vtables
                          Use the experimental C++ class ABI for classes with virtual tables
  -fexperimental-strict-floating-point
                          Enables experimental strict floating point in LLVM.
  -ffast-math             Allow aggressive, lossy floating-point optimizations
  -ffile-prefix-map=<value>
                          remap file source paths in debug info and predefined preprocessor macros
  -ffine-grained-bitfield-accesses
                          Use separate accesses for consecutive bitfield runs with legal widths and alignments.
  -ffixed-point           Enable fixed point types
  -ffixed-r19             Reserve register r19 (Hexagon only)
  -ffixed-r9              Reserve the r9 register (ARM only)
  -ffixed-x10             Reserve the x10 register (AArch64/RISC-V only)
  -ffixed-x11             Reserve the x11 register (AArch64/RISC-V only)
  -ffixed-x12             Reserve the x12 register (AArch64/RISC-V only)
  -ffixed-x13             Reserve the x13 register (AArch64/RISC-V only)
  -ffixed-x14             Reserve the x14 register (AArch64/RISC-V only)
  -ffixed-x15             Reserve the x15 register (AArch64/RISC-V only)
  -ffixed-x16             Reserve the x16 register (AArch64/RISC-V only)
  -ffixed-x17             Reserve the x17 register (AArch64/RISC-V only)
  -ffixed-x18             Reserve the x18 register (AArch64/RISC-V only)
  -ffixed-x19             Reserve the x19 register (AArch64/RISC-V only)
  -ffixed-x1              Reserve the x1 register (AArch64/RISC-V only)
  -ffixed-x20             Reserve the x20 register (AArch64/RISC-V only)
  -ffixed-x21             Reserve the x21 register (AArch64/RISC-V only)
  -ffixed-x22             Reserve the x22 register (AArch64/RISC-V only)
  -ffixed-x23             Reserve the x23 register (AArch64/RISC-V only)
  -ffixed-x24             Reserve the x24 register (AArch64/RISC-V only)
  -ffixed-x25             Reserve the x25 register (AArch64/RISC-V only)
  -ffixed-x26             Reserve the x26 register (AArch64/RISC-V only)
  -ffixed-x27             Reserve the x27 register (AArch64/RISC-V only)
  -ffixed-x28             Reserve the x28 register (AArch64/RISC-V only)
  -ffixed-x29             Reserve the x29 register (AArch64/RISC-V only)
  -ffixed-x2              Reserve the x2 register (AArch64/RISC-V only)
  -ffixed-x30             Reserve the x30 register (AArch64/RISC-V only)
  -ffixed-x31             Reserve the x31 register (AArch64/RISC-V only)
  -ffixed-x3              Reserve the x3 register (AArch64/RISC-V only)
  -ffixed-x4              Reserve the x4 register (AArch64/RISC-V only)
  -ffixed-x5              Reserve the x5 register (AArch64/RISC-V only)
  -ffixed-x6              Reserve the x6 register (AArch64/RISC-V only)
  -ffixed-x7              Reserve the x7 register (AArch64/RISC-V only)
  -ffixed-x8              Reserve the x8 register (AArch64/RISC-V only)
  -ffixed-x9              Reserve the x9 register (AArch64/RISC-V only)
  -fforce-dwarf-frame     Always emit a debug frame section
  -fforce-emit-vtables    Emits more virtual tables to improve devirtualization
  -fforce-enable-int128   Enable support for int128_t type
  -ffp-contract=<value>   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=<value>
                          Specifies the exception behavior of floating-point operations.
  -ffp-model=<value>      Controls the semantics of floating-point calculations.
  -ffreestanding          Assert that the compilation takes place in a freestanding environment
  -ffunction-sections     Place each function in its own section
  -fglobal-isel           Enables the global instruction selector
  -fgnu-inline-asm        
  -fgnu-keywords          Allow GNU-extension keywords regardless of language standard
  -fgnu-runtime           Generate output compatible with the standard GNU Objective-C runtime
  -fgnu89-inline          Use the gnu89 inline semantics
  -fgnuc-version=<value>  Sets various macros to claim compatibility with the given GCC version (default is 4.2.1)
  -fgpu-allow-device-init Allow device side init function in HIP
  -fgpu-rdc               Generate relocatable device code, also known as separate compilation mode
  -fhip-new-launch-api    Use new kernel launching API for HIP
  -fignore-exceptions     Enable support for ignoring exception handling constructs
  -fimplicit-module-maps  Implicitly search the file system for module map files.
  -finline-functions      Inline suitable functions
  -finline-hint-functions Inline functions which are (explicitly or implicitly) marked inline
  -finstrument-function-entry-bare
                          Instrument function entry only, after inlining, without arguments to the instrumentation call
  -finstrument-functions-after-inlining
                          Like -finstrument-functions, but insert the calls after inlining
  -finstrument-functions  Generate calls to instrument function entry and exit
  -fintegrated-as         Enable the integrated assembler
  -fintegrated-cc1        Run cc1 in-process
  -fjump-tables           Use jump tables for lowering switches
  -fkeep-static-consts    Keep static const variables if unused
  -flax-vector-conversions=<value>
                          Enable implicit vector bit-casts
  -flto-jobs=<value>      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=<value>           Set LTO mode to either 'full' or 'thin'
  -flto                   Enable LTO in 'full' mode
  -fmacro-prefix-map=<value>
                          remap file source paths in predefined preprocessor macros
  -fmath-errno            Require math functions to indicate errors by setting errno
  -fmax-tokens=<value>    Max total number of preprocessed tokens for -Wmax-tokens.
  -fmax-type-align=<value>
                          Specify the maximum alignment to enforce on pointers lacking an explicit alignment
  -fmerge-all-constants   Allow merging of constants
  -fmessage-length=<value>
                          Format message diagnostics so that they fit within N columns
  -fmodule-file=[<name>=]<file>
                          Specify the mapping of module name to precompiled module file, or load a module file if name is omitted.
  -fmodule-map-file=<file>
                          Load this module map file
  -fmodule-name=<name>    Specify the name of the module to build
  -fmodules-cache-path=<directory>
                          Specify the module cache path
  -fmodules-decluse       Require declaration of modules used within a module
  -fmodules-disable-diagnostic-validation
                          Disable validation of the diagnostic options when loading the module
  -fmodules-ignore-macro=<value>
                          Ignore the definition of the given macro when building and loading modules
  -fmodules-prune-after=<seconds>
                          Specify the interval (in seconds) after which a module file will be considered unused
  -fmodules-prune-interval=<seconds>
                          Specify the interval (in seconds) between attempts to prune the module cache
  -fmodules-search-all    Search even non-imported modules to resolve references
  -fmodules-strict-decluse
                          Like -fmodules-decluse but requires all headers to be in modules
  -fmodules-ts            Enable support for the C++ Modules TS
  -fmodules-user-build-path <directory>
                          Specify the module user build path
  -fmodules-validate-input-files-content
                          Validate PCM input files based on content if mtime differs
  -fmodules-validate-once-per-build-session
                          Don't verify input files for the modules if the module has been successfully validated or loaded during this build session
  -fmodules-validate-system-headers
                          Validate the system headers that a module depends on when loading the module
  -fmodules               Enable the 'modules' language feature
  -fms-compatibility-version=<value>
                          Dot-separated value representing the Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
  -fms-compatibility      Enable full Microsoft Visual C++ compatibility
  -fms-extensions         Accept some non-standard constructs supported by the Microsoft compiler
  -fmsc-version=<value>   Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
  -fnew-alignment=<align> Specifies the largest alignment guaranteed by '::operator new(size_t)'
  -fno-access-control     
  -fno-addrsig            Don't emit an address-significance table
  -fno-allow-editor-placeholders
                          
  -fno-asm-blocks         
  -fno-assume-sane-operator-new
                          Don't assume that C++'s global operator new can't alias any pointer
  -fno-autolink           Disable generation of linker directives for automatic library linking
  -fno-blocks             
  -fno-builtin-<value>    Disable implicit builtin knowledge of a specific function
  -fno-builtin            Disable implicit builtin knowledge of functions
  -fno-c++-static-destructors
                          Disable C++ static destructor registration
  -fno-caret-diagnostics  
  -fno-char8_t            Disable C++ builtin type char8_t
  -fno-color-diagnostics  Disable colors in diagnostics
  -fno-common             Compile common globals like normal definitions
  -fno-complete-member-pointers
                          Do not require member pointer base types to be complete if they would be significant under the Microsoft ABI
  -fno-constant-cfstrings Disable creation of CodeFoundation-type constant strings
  -fno-coroutines-ts      
  -fno-coverage-mapping   Disable code coverage analysis
  -fno-crash-diagnostics  Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash
  -fno-cuda-approx-transcendentals
                          Don't use approximate transcendental functions
  -fno-cuda-short-ptr     
  -fno-cxx-exceptions     
  -fno-data-sections      
  -fno-debug-info-for-profiling
                          
  -fno-debug-macro        Do not emit macro debug information
  -fno-debug-ranges-base-address
                          
  -fno-declspec           Disallow __declspec as a keyword
  -fno-delayed-template-parsing
                          Disable delayed template parsing
  -fno-delete-null-pointer-checks
                          Do not treat usage of null pointers as undefined behavior
  -fno-diagnostics-fixit-info
                          Do not include fixit information in diagnostics
  -fno-digraphs           Disallow alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:'
  -fno-discard-value-names
                          Do not discard value names in LLVM IR
  -fno-dollars-in-identifiers
                          Disallow '$' in identifiers
  -fno-double-square-bracket-attributes
                          Disable '[[]]' attributes in all C and C++ language modes
  -fno-dwarf-directory-asm
                          
  -fno-elide-constructors Disable C++ copy constructor elision
  -fno-elide-type         Do not elide types when printing diagnostics
  -fno-exceptions         Disable support for exception handling
  -fno-experimental-new-pass-manager
                          Disables an experimental new pass manager in LLVM.
  -fno-experimental-relative-c++-abi-vtables
                          Do not use the experimental C++ class ABI for classes with virtual tables
  -fno-fast-math          
  -fno-fine-grained-bitfield-accesses
                          Use large-integer access for consecutive bitfield runs.
  -fno-fixed-point        Disable fixed point types
  -fno-force-dwarf-frame  
  -fno-force-emit-vtables 
  -fno-force-enable-int128
                          Disable support for int128_t type
  -fno-function-sections  
  -fno-global-isel        Disables the global instruction selector
  -fno-gnu-inline-asm     Disable GNU style inline asm
  -fno-gnu89-inline       
  -fno-gpu-allow-device-init
                          Don't allow device side init function in HIP
  -fno-gpu-rdc            
  -fno-hip-new-launch-api Don't use new kernel launching API for HIP
  -fno-integrated-as      Disable the integrated assembler
  -fno-integrated-cc1     Spawn a separate process for each cc1
  -fno-jump-tables        Do not use jump tables for lowering switches
  -fno-keep-static-consts Don't keep static const variables if unused
  -fno-lto                Disable LTO mode (default)
  -fno-math-errno         
  -fno-merge-all-constants
                          Disallow merging of constants
  -fno-no-access-control  Disable C++ access control
  -fno-objc-infer-related-result-type
                          do not infer Objective-C related result type based on method family
  -fno-operator-names     Do not treat C++ operator name keywords as synonyms for operators
  -fno-pch-codegen        Do not generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
  -fno-pch-debuginfo      Do not generate debug info for types in an object file built from this PCH and do not generate them elsewhere
  -fno-plt                Use GOT indirection instead of PLT to make external function calls (x86 only)
  -fno-preserve-as-comments
                          Do not preserve comments in inline assembly
  -fno-profile-generate   Disable generation of profile instrumentation.
  -fno-profile-instr-generate
                          Disable generation of profile instrumentation.
  -fno-profile-instr-use  Disable using instrumentation data for profile-guided optimization
  -fno-register-global-dtors-with-atexit
                          Don't use atexit or __cxa_atexit to register global destructors
  -fno-reroll-loops       
  -fno-rewrite-imports    
  -fno-rewrite-includes   
  -fno-ropi               
  -fno-rtlib-add-rpath    Do not add -rpath with architecture-specific resource directory to the linker flags
  -fno-rtti-data          Disable generation of RTTI data
  -fno-rtti               Disable generation of rtti information
  -fno-rwpi               
  -fno-sanitize-address-poison-custom-array-cookie
                          Disable poisoning array cookies when using custom operator new[] in AddressSanitizer
  -fno-sanitize-address-use-after-scope
                          Disable use-after-scope detection in AddressSanitizer
  -fno-sanitize-address-use-odr-indicator
                          Disable ODR indicator globals
  -fno-sanitize-blacklist Don't use blacklist file for sanitizers
  -fno-sanitize-cfi-canonical-jump-tables
                          Do not make the jump table addresses canonical in the symbol table
  -fno-sanitize-cfi-cross-dso
                          Disable control flow integrity (CFI) checks for cross-DSO calls.
  -fno-sanitize-coverage=<value>
                          Disable specified features of coverage instrumentation for Sanitizers
  -fno-sanitize-memory-track-origins
                          Disable origins tracking in MemorySanitizer
  -fno-sanitize-memory-use-after-dtor
                          Disable use-after-destroy detection in MemorySanitizer
  -fno-sanitize-recover=<value>
                          Disable recovery for specified sanitizers
  -fno-sanitize-stats     Disable sanitizer statistics gathering.
  -fno-sanitize-thread-atomics
                          Disable atomic operations instrumentation in ThreadSanitizer
  -fno-sanitize-thread-func-entry-exit
                          Disable function entry/exit instrumentation in ThreadSanitizer
  -fno-sanitize-thread-memory-access
                          Disable memory access instrumentation in ThreadSanitizer
  -fno-sanitize-trap=<value>
                          Disable trapping for specified sanitizers
  -fno-sanitize-trap      Disable trapping for all sanitizers
  -fno-short-wchar        Force wchar_t to be an unsigned int
  -fno-show-column        Do not include column number on diagnostics
  -fno-show-source-location
                          Do not include source location information with diagnostics
  -fno-signed-char        char is unsigned
  -fno-signed-zeros       Allow optimizations that ignore the sign of floating point zeros
  -fno-spell-checking     Disable spell-checking
  -fno-split-lto-unit     
  -fno-stack-clash-protection
                          Disable stack clash protection
  -fno-stack-protector    Disable the use of stack protectors
  -fno-stack-size-section 
  -fno-standalone-debug   Limit debug information produced to reduce size of debug binary
  -fno-strict-float-cast-overflow
                          Relax language rules and try to match the behavior of the target's native float-to-int conversion instructions
  -fno-strict-return      Don't treat control flow paths that fall off the end of a non-void function as unreachable
  -fno-sycl               Disable SYCL kernels compilation for device
  -fno-temp-file          Directly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes
  -fno-threadsafe-statics Do not emit code to make initialization of local statics thread safe
  -fno-trigraphs          Do not process trigraph sequences
  -fno-unique-basic-block-section-names
                          
  -fno-unique-internal-linkage-names
                          
  -fno-unique-section-names
                          Don't use unique names for text and data sections
  -fno-unroll-loops       Turn off loop unroller
  -fno-use-cxa-atexit     Don't use __cxa_atexit for calling destructors
  -fno-use-init-array     Use .ctors/.dtors instead of .init_array/.fini_array
  -fno-use-line-directives
                          
  -fno-virtual-function-elimination
                          
  -fno-whole-program-vtables
                          
  -fno-xray-always-emit-customevents
                          
  -fno-xray-always-emit-typedevents
                          
  -fno-xray-function-index
                          Omit function index section at the expense of single-function patching performance
  -fno-xray-ignore-loops  
  -fno-xray-instrument    
  -fno-zero-initialized-in-bss
                          Don't place zero initialized data in BSS
  -fno-zvector            
  -fobjc-arc-exceptions   Use EH-safe code when synthesizing retains and releases in -fobjc-arc
  -fobjc-arc              Synthesize retain and release calls for Objective-C pointers
  -fobjc-exceptions       Enable Objective-C exceptions
  -fobjc-runtime=<value>  Specify the target Objective-C runtime kind and version
  -fobjc-weak             Enable ARC-style weak references in Objective-C
  -fopenmp-simd           Emit OpenMP code only for SIMD-based constructs.
  -fopenmp-targets=<value>
                          Specify comma-separated list of triples OpenMP offloading targets to be supported
  -fopenmp                Parse OpenMP pragmas and generate parallel code.
  -foptimization-record-file=<file>
                          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=<regex>
                          Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
  -forder-file-instrumentation
                          Generate instrumented code to collect order file into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)
  -fpack-struct=<value>   Specify the default maximum struct packing alignment
  -fpascal-strings        Recognize and construct Pascal-style string literals
  -fpass-plugin=<dsopath> Load pass plugin from a dynamic shared object file (only with new pass manager).
  -fpatchable-function-entry=<N,M>
                          Generate M NOPs before function entry and N-M NOPs after function entry
  -fpcc-struct-return     Override the default ABI to return all structs on the stack
  -fpch-codegen           Generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
  -fpch-debuginfo         Generate debug info for types in an object file built from this PCH and do not generate them elsewhere
  -fpch-instantiate-templates
                          Instantiate templates already while building a PCH
  -fpch-validate-input-files-content
                          Validate PCH input files based on content if mtime differs
  -fplt                   
  -fplugin=<dsopath>      Load the named plugin (dynamic shared object)
  -fprebuilt-module-path=<directory>
                          Specify the prebuilt module path
  -fpreserve-as-comments  
  -fprofile-exclude-files=<value>
                          Instrument only functions from files where names don't match all the regexes separated by a semi-colon
  -fprofile-filter-files=<value>
                          Instrument only functions from files where names match any regex separated by a semi-colon
  -fprofile-generate=<directory>
                          Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)
  -fprofile-generate      Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM_PROFILE_FILE env var)
  -fprofile-instr-generate=<file>
                          Generate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var)
  -fprofile-instr-generate
                          Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)
  -fprofile-instr-use=<value>
                          Use instrumentation data for profile-guided optimization
  -fprofile-remapping-file=<file>
                          Use the remappings described in <file> to match the profile data against names in the program
  -fprofile-sample-accurate
                          Specifies that the sample profile is accurate
  -fprofile-sample-use=<value>
                          Enable sample-based profile guided optimizations
  -fprofile-use=<pathname>
                          Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
  -freciprocal-math       Allow division operations to be reassociated
  -freg-struct-return     Override the default ABI to return small structs in registers
  -fregister-global-dtors-with-atexit
                          Use atexit or __cxa_atexit to register global destructors
  -frelaxed-template-template-args
                          Enable C++17 relaxed template template argument matching
  -freroll-loops          Turn on loop reroller
  -frewrite-imports       
  -frewrite-includes      
  -fropi                  Generate read-only position independent code (ARM only)
  -frtlib-add-rpath       Add -rpath with architecture-specific resource directory to the linker flags
  -frtti-data             
  -frtti                  
  -frwpi                  Generate read-write position independent code (ARM only)
  -fsanitize-address-field-padding=<value>
                          Level of field padding for AddressSanitizer
  -fsanitize-address-globals-dead-stripping
                          Enable linker dead stripping of globals in AddressSanitizer
  -fsanitize-address-poison-custom-array-cookie
                          Enable poisoning array cookies when using custom operator new[] in AddressSanitizer
  -fsanitize-address-use-after-scope
                          Enable use-after-scope detection in AddressSanitizer
  -fsanitize-address-use-odr-indicator
                          Enable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size
  -fsanitize-blacklist=<value>
                          Path to blacklist file for sanitizers
  -fsanitize-cfi-canonical-jump-tables
                          Make the jump table addresses canonical in the symbol table
  -fsanitize-cfi-cross-dso
                          Enable control flow integrity (CFI) checks for cross-DSO calls.
  -fsanitize-cfi-icall-generalize-pointers
                          Generalize pointers in CFI indirect call type signature checks
  -fsanitize-coverage-allowlist=<value>
                          Restrict sanitizer coverage instrumentation exclusively to modules and functions that match the provided special case list, except the blocked ones
  -fsanitize-coverage-blacklist=<value>
                          Deprecated, use -fsanitize-coverage-blocklist= instead
  -fsanitize-coverage-blocklist=<value>
                          Disable sanitizer coverage instrumentation for modules and functions that match the provided special case list, even the allowed ones
  -fsanitize-coverage-whitelist=<value>
                          Deprecated, use -fsanitize-coverage-allowlist= instead
  -fsanitize-coverage=<value>
                          Specify the type of coverage instrumentation for Sanitizers
  -fsanitize-hwaddress-abi=<value>
                          Select the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor). This option is currently unused.
  -fsanitize-memory-track-origins=<value>
                          Enable origins tracking in MemorySanitizer
  -fsanitize-memory-track-origins
                          Enable origins tracking in MemorySanitizer
  -fsanitize-memory-use-after-dtor
                          Enable use-after-destroy detection in MemorySanitizer
  -fsanitize-recover=<value>
                          Enable recovery for specified sanitizers
  -fsanitize-stats        Enable sanitizer statistics gathering.
  -fsanitize-system-blacklist=<value>
                          Path to system blacklist file for sanitizers
  -fsanitize-thread-atomics
                          Enable atomic operations instrumentation in ThreadSanitizer (default)
  -fsanitize-thread-func-entry-exit
                          Enable function entry/exit instrumentation in ThreadSanitizer (default)
  -fsanitize-thread-memory-access
                          Enable memory access instrumentation in ThreadSanitizer (default)
  -fsanitize-trap=<value> Enable trapping for specified sanitizers
  -fsanitize-trap         Enable trapping for all sanitizers
  -fsanitize-undefined-strip-path-components=<number>
                          Strip (or keep only, if negative) a given number of path components when emitting check metadata.
  -fsanitize=<check>      Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
  -fsave-optimization-record=<format>
                          Generate an optimization record file in a specific format
  -fsave-optimization-record
                          Generate a YAML optimization record file
  -fseh-exceptions        Use SEH style exceptions
  -fshort-enums           Allocate to an enum type only as many bytes as it needs for the declared range of possible values
  -fshort-wchar           Force wchar_t to be a short unsigned int
  -fshow-column           
  -fshow-overloads=<value>
                          Which overload candidates to show when overload resolution fails: best|all; defaults to all
  -fsigned-char           char is signed
  -fsized-deallocation    Enable C++14 sized global deallocation functions
  -fsjlj-exceptions       Use SjLj style exceptions
  -fslp-vectorize         Enable the superword-level parallelism vectorization passes
  -fsplit-dwarf-inlining  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
  -fsplit-lto-unit        Enables splitting of the LTO unit
  -fstack-clash-protection
                          Enable stack clash protection
  -fstack-protector-all   Enable stack protectors for all functions
  -fstack-protector-strong
                          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
  -fstack-protector       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
  -fstack-size-section    Emit section containing metadata on function stack sizes
  -fstandalone-debug      Emit full debug info for all types used by the program
  -fstrict-enums          Enable optimizations based on the strict definition of an enum's value range
  -fstrict-float-cast-overflow
                          Assume that overflowing float-to-int casts are undefined (default)
  -fstrict-return         
  -fstrict-vtable-pointers
                          Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
  -fsycl                  Enable SYCL kernels compilation for device
  -fsystem-module         Build this module as a system module. Only used with -emit-module
  -fthin-link-bitcode=<value>
                          Write minimized bitcode to <file> for the ThinLTO thin link only
  -fthinlto-index=<value> Perform ThinLTO importing using provided function summary index
  -ftime-trace-granularity=<value>
                          Minimum time granularity (in microseconds) traced by time profiler
  -ftime-trace            Turn on time profiler. Generates JSON file based on output filename.
  -ftrap-function=<value> Issue call to specified function rather than a trap instruction
  -ftrapv-handler=<function name>
                          Specify the function to be called on overflow
  -ftrapv                 Trap on integer overflow
  -ftrigraphs             Process trigraph sequences
  -ftrivial-auto-var-init-stop-after=<value>
                          Stop initializing trivial automatic stack variables after the specified number of instances
  -ftrivial-auto-var-init=<value>
                          Initialize trivial automatic stack variables: uninitialized (default) | pattern
  -funique-basic-block-section-names
                          Use unique names for basic block sections (ELF Only)
  -funique-internal-linkage-names
                          Uniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path
  -funique-section-names  
  -funroll-loops          Turn on loop unroller
  -fuse-init-array        
  -fuse-line-directives   Use #line in preprocessed output
  -fvalidate-ast-input-files-content
                          Compute 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=<value>        Use the given vector functions library
  -fvectorize             Enable the loop vectorization passes
  -fverbose-asm           Generate verbose assembly output
  -fvirtual-function-elimination
                          Enables dead virtual function elimination optimization. Requires -flto=full
  -fvisibility-global-new-delete-hidden
                          Give global C++ operator new and delete declarations hidden visibility
  -fvisibility-inlines-hidden
                          Give inline C++ member functions hidden visibility by default
  -fvisibility-ms-compat  Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
  -fvisibility=<value>    Set the default symbol visibility for all global declarations
  -fwasm-exceptions       Use WebAssembly style exceptions
  -fwhole-program-vtables Enables whole-program vtable optimization. Requires -flto
  -fwrapv                 Treat signed integer overflow as two's complement
  -fwritable-strings      Store string literals as writable data
  -fxray-always-emit-customevents
                          Always emit __xray_customevent(...) calls even if the containing function is not always instrumented
  -fxray-always-emit-typedevents
                          Always emit __xray_typedevent(...) calls even if the containing function is not always instrumented
  -fxray-always-instrument= <value>
                          DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
  -fxray-attr-list= <value>
                          Filename defining the list of functions/types for imbuing XRay attributes.
  -fxray-function-index   
  -fxray-ignore-loops     Don't instrument functions with loops unless they also meet the minimum function size
  -fxray-instruction-threshold= <value>
                          Sets the minimum function size to instrument with XRay
  -fxray-instrumentation-bundle= <value>
                          Select which XRay instrumentation points to emit. Options: all, none, function-entry, function-exit, function, custom. Default is 'all'.  'function' includes both 'function-entry' and 'function-exit'.
  -fxray-instrument       Generate XRay instrumentation sleds on function entry and exit
  -fxray-link-deps        Tells clang to add the link dependencies for XRay.
  -fxray-modes= <value>   List of modes to link in by default into XRay instrumented binaries.
  -fxray-never-instrument= <value>
                          DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
  -fzero-initialized-in-bss
                          
  -fzvector               Enable System z vector language extension
  -F <value>              Add directory to framework include search path
  --gcc-toolchain=<value> Use the gcc toolchain at the given directory
  -gcodeview-ghash        Emit type record hashes in a .debug$H section
  -gcodeview              Generate CodeView debug information
  -gdwarf-2               Generate source-level debug information with dwarf version 2
  -gdwarf-3               Generate source-level debug information with dwarf version 3
  -gdwarf-4               Generate source-level debug information with dwarf version 4
  -gdwarf-5               Generate source-level debug information with dwarf version 5
  -gdwarf                 Generate source-level debug information with the default dwarf version
  -gembed-source          Embed source text in DWARF debug sections
  -gline-directives-only  Emit debug line info directives only
  -gline-tables-only      Emit debug line number tables only
  -gmodules               Generate debug info with external references to clang modules or precompiled headers
  -gno-embed-source       Restore the default behavior of not embedding source text in DWARF debug sections
  -gno-inline-line-tables Don't emit inline line tables
  --gpu-max-threads-per-block=<value>
                          Default max threads per block for kernel launch bounds for HIP
  -gsplit-dwarf=<value>   Set DWARF fission mode to either 'split' or 'single'
  -gz=<value>             DWARF debug sections compression type
  -gz                     DWARF debug sections compression type
  -G <size>               Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
  -g                      Generate source-level debug information
  --help-hidden           Display help for hidden options
  -help                   Display available options
  --hip-device-lib=<value>
                          HIP device library
  --hip-link              Link clang-offload-bundler bundles for HIP
  --hip-version=<value>   HIP version in the format of major.minor.patch
  -H                      Show header includes and nesting depth
  -I-                     Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
  -ibuiltininc            Enable builtin #include directories even when -nostdinc is used before or after -ibuiltininc. Using -nobuiltininc after the option disables it
  -idirafter <value>      Add directory to AFTER include search path
  -iframeworkwithsysroot <directory>
                          Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
  -iframework <value>     Add directory to SYSTEM framework search path
  -imacros <file>         Include macros from file before parsing
  -include-pch <file>     Include precompiled header file
  -include <file>         Include file before parsing
  -index-header-map       Make the next included directory (-I or -F) an indexer header map
  -iprefix <dir>          Set the -iwithprefix/-iwithprefixbefore prefix
  -iquote <directory>     Add directory to QUOTE include search path
  -isysroot <dir>         Set the system root directory (usually /)
  -isystem-after <directory>
                          Add directory to end of the SYSTEM include search path
  -isystem <directory>    Add directory to SYSTEM include search path
  -ivfsoverlay <value>    Overlay the virtual filesystem described by file over the real file system
  -iwithprefixbefore <dir>
                          Set directory to include search path with prefix
  -iwithprefix <dir>      Set directory to SYSTEM include search path with prefix
  -iwithsysroot <directory>
                          Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
  -I <dir>                Add directory to include search path
  --libomptarget-nvptx-path=<value>
                          Path to libomptarget-nvptx libraries
  -L <dir>                Add directory to library search path
  -mabicalls              Enable SVR4-style position-independent code (Mips only)
  -maix-struct-return     Return all structs in memory (PPC32 only)
  -malign-branch-boundary=<value>
                          Specify the boundary's size to align branches
  -malign-branch=<value>  Specify types of branches to align
  -malign-double          Align doubles to two words in structs (x86 only)
  -mbackchain             Link stack frames through backchain on System Z
  -mbranch-protection=<value>
                          Enforce targets of indirect branches and function returns
  -mbranches-within-32B-boundaries
                          Align selected branches (fused, jcc, jmp) within 32-byte boundary
  -mcmodel=medany         Equivalent to -mcmodel=medium, compatible with RISC-V gcc.
  -mcmodel=medlow         Equivalent to -mcmodel=small, compatible with RISC-V gcc.
  -mcmse                  Allow use of CMSE (Armv8-M Security Extensions)
  -mcode-object-v3        Enable code object v3 (AMDGPU only)
  -mcrc                   Allow use of CRC instructions (ARM/Mips only)
  -mcumode                CU wavefront execution mode is used (AMDGPU only)
  -mdouble=<value>        Force double to be 32 bits or 64 bits
  -MD                     Write a depfile containing user and system headers
  -meabi <value>          Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
  -membedded-data         Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
  -menable-experimental-extensions
                          Enable use of experimental RISC-V extensions.
  -mexec-model=<value>    Execution model (WebAssembly only)
  -mexecute-only          Disallow generation of data access to code sections (ARM only)
  -mextern-sdata          Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
  -mfentry                Insert calls to fentry at function entry (x86/SystemZ only)
  -mfix-cortex-a53-835769 Workaround Cortex-A53 erratum 835769 (AArch64 only)
  -mfp32                  Use 32-bit floating point registers (MIPS only)
  -mfp64                  Use 64-bit floating point registers (MIPS only)
  -MF <file>              Write depfile output from -MMD, -MD, -MM, or -M to <file>
  -mgeneral-regs-only     Generate code which only uses the general purpose registers (AArch64 only)
  -mglobal-merge          Enable merging of globals
  -mgpopt                 Use GP relative accesses for symbols known to be in a small data section (MIPS)
  -MG                     Add missing headers to depfile
  -mharden-sls=<value>    Select straight-line speculation hardening scope
  -mhvx-length=<value>    Set Hexagon Vector Length
  -mhvx=<value>           Enable Hexagon Vector eXtensions
  -mhvx                   Enable Hexagon Vector eXtensions
  -miamcu                 Use Intel MCU ABI
  --migrate               Run the migrator
  -mincremental-linker-compatible
                          (integrated-as) Emit an object file which can be used with an incremental linker
  -mindirect-jump=<value> Change indirect jump instructions to inhibit speculation
  -mios-version-min=<value>
                          Set iOS deployment target
  -MJ <value>             Write a compilation database entry per input
  -mllvm <value>          Additional arguments to forward to LLVM's option processing
  -mlocal-sdata           Extend the -G behaviour to object local data (MIPS)
  -mlong-calls            Generate branches with extended addressability, usually via indirect jumps.
  -mlong-double-128       Force long double to be 128 bits
  -mlong-double-64        Force long double to be 64 bits
  -mlong-double-80        Force long double to be 80 bits, padded to 128 bits for storage
  -mlvi-cfi               Enable only control-flow mitigations for Load Value Injection (LVI)
  -mlvi-hardening         Enable all mitigations for Load Value Injection (LVI)
  -mmacosx-version-min=<value>
                          Set Mac OS X deployment target
  -mmadd4                 Enable the generation of 4-operand madd.s, madd.d and related instructions.
  -MMD                    Write a depfile containing user headers
  -mmemops                Enable generation of memop instructions
  -mms-bitfields          Set the default structure layout to be compatible with the Microsoft compiler standard
  -mmsa                   Enable MSA ASE (MIPS only)
  -mmt                    Enable MT ASE (MIPS only)
  -MM                     Like -MMD, but also implies -E and writes to stdout by default
  -mno-abicalls           Disable SVR4-style position-independent code (Mips only)
  -mno-code-object-v3     Disable code object v3 (AMDGPU only)
  -mno-crc                Disallow use of CRC instructions (Mips only)
  -mno-cumode             WGP wavefront execution mode is used (AMDGPU only)
  -mno-embedded-data      Do not place constants in the .rodata section instead of the .sdata if they meet the -G <size> threshold (MIPS)
  -mno-execute-only       Allow generation of data access to code sections (ARM only)
  -mno-extern-sdata       Do not assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
  -mno-fix-cortex-a53-835769
                          Don't workaround Cortex-A53 erratum 835769 (AArch64 only)
  -mno-global-merge       Disable merging of globals
  -mno-gpopt              Do not use GP relative accesses for symbols known to be in a small data section (MIPS)
  -mno-hvx                Disable Hexagon Vector eXtensions
  -mno-implicit-float     Don'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-sdata        Do not extend the -G behaviour to object local data (MIPS)
  -mno-long-calls         Restore the default behaviour of not generating long calls
  -mno-lvi-cfi            Disable control-flow mitigations for Load Value Injection (LVI)
  -mno-lvi-hardening      Disable mitigations for Load Value Injection (LVI)
  -mno-madd4              Disable the generation of 4-operand madd.s, madd.d and related instructions.
  -mno-memops             Disable generation of memop instructions
  -mno-movt               Disallow use of movt/movw pairs (ARM only)
  -mno-ms-bitfields       Do not set the default structure layout to be compatible with the Microsoft compiler standard
  -mno-msa                Disable MSA ASE (MIPS only)
  -mno-mt                 Disable MT ASE (MIPS only)
  -mno-neg-immediates     Disallow converting instructions with negative immediates to their negation or inversion.
  -mno-nvj                Disable generation of new-value jumps
  -mno-nvs                Disable generation of new-value stores
  -mno-outline            Disable function outlining (AArch64 only)
  -mno-packets            Disable generation of instruction packets
  -mno-relax              Disable linker relaxation
  -mno-restrict-it        Allow generation of deprecated IT blocks for ARMv8. It is off by default for ARMv8 Thumb mode
  -mno-save-restore       Disable using library calls for save and restore
  -mno-seses              Disable speculative execution side effect suppression (SESES)
  -mno-sram-ecc           Disable SRAM ECC (AMDGPU only)
  -mno-stack-arg-probe    Disable stack probes which are enabled by default
  -mno-tls-direct-seg-refs
                          Disable direct TLS access through segment registers
  -mno-unaligned-access   Force all memory accesses to be aligned (AArch32/AArch64 only)
  -mno-wavefrontsize64    Wavefront size 32 is used
  -mno-xnack              Disable XNACK (AMDGPU only)
  -mnocrc                 Disallow use of CRC instructions (ARM only)
  -mnop-mcount            Generate mcount/__fentry__ calls as nops. To activate they need to be patched in.
  -mnvj                   Enable generation of new-value jumps
  -mnvs                   Enable generation of new-value stores
  -module-dependency-dir <value>
                          Directory to dump module dependencies to
  -module-file-info       Provide information about a particular module file
  -momit-leaf-frame-pointer
                          Omit frame pointer setup for leaf functions
  -moutline               Enable function outlining (AArch64 only)
  -mpacked-stack          Use packed stack layout (SystemZ only).
  -mpackets               Enable generation of instruction packets
  -mpad-max-prefix-size=<value>
                          Specify maximum number of prefixes to use for padding
  -mpie-copy-relocations  Use copy relocations support for PIE builds
  -mprefer-vector-width=<value>
                          Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
  -MP                     Create phony target for each dependency (other than main file)
  -mqdsp6-compat          Enable hexagon-qdsp6 backward compatibility
  -MQ <value>             Specify name of main file output to quote in depfile
  -mrecord-mcount         Generate a __mcount_loc section entry for each __fentry__ call.
  -mrelax-all             (integrated-as) Relax all machine instructions
  -mrelax                 Enable linker relaxation
  -mrestrict-it           Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
  -mrtd                   Make StdCall calling convention the default
  -msave-restore          Enable using library calls for save and restore
  -mseses                 Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
  -msign-return-address=<value>
                          Select return address signing scope
  -msmall-data-limit=<value>
                          Put global and static data smaller than the limit into a special section
  -msoft-float            Use software floating point
  -msram-ecc              Enable SRAM ECC (AMDGPU only)
  -mstack-alignment=<value>
                          Set the stack alignment
  -mstack-arg-probe       Enable stack probes
  -mstack-probe-size=<value>
                          Set the stack probe size
  -mstackrealign          Force realign the stack at entry to every function
  -msvr4-struct-return    Return small structs in registers (PPC32 only)
  -mthread-model <value>  The thread model to use, e.g. posix, single (posix by default)
  -mtls-direct-seg-refs   Enable direct TLS access through segment registers (default)
  -mtls-size=<value>      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=<value>            Thread pointer access method (AArch32/AArch64 only)
  -mtune=<value>          Accepted for compatibility with GCC. Currently has no effect.
  -MT <value>             Specify name of main file output in depfile
  -munaligned-access      Allow memory accesses to be unaligned (AArch32/AArch64 only)
  -MV                     Use NMake/Jom format for the depfile
  -mwavefrontsize64       Wavefront size 64 is used
  -mxnack                 Enable XNACK (AMDGPU only)
  -M                      Like -MD, but also implies -E and writes to stdout by default
  --no-cuda-include-ptx=<value>
                          Do not include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once.
  --no-cuda-version-check Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.
  --no-offload-arch=<value>
                          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=<prefix>
                          Treat all #include paths starting with <prefix> as not including a system header.
  -nobuiltininc           Disable builtin #include directories
  -nogpulib               Do 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-property Make migration to 'atomic' properties
  -objcmt-migrate-all     Enable migration to modern ObjC
  -objcmt-migrate-annotation
                          Enable migration to property and method annotations
  -objcmt-migrate-designated-init
                          Enable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods
  -objcmt-migrate-instancetype
                          Enable migration to infer instancetype for method result type
  -objcmt-migrate-literals
                          Enable migration to modern ObjC literals
  -objcmt-migrate-ns-macros
                          Enable migration to NS_ENUM/NS_OPTIONS macros
  -objcmt-migrate-property-dot-syntax
                          Enable migration of setter/getter messages to property-dot syntax
  -objcmt-migrate-property
                          Enable migration to modern ObjC property
  -objcmt-migrate-protocol-conformance
                          Enable migration to add protocol conformance on classes
  -objcmt-migrate-readonly-property
                          Enable migration to modern ObjC readonly property
  -objcmt-migrate-readwrite-property
                          Enable migration to modern ObjC readwrite property
  -objcmt-migrate-subscripting
                          Enable migration to modern ObjC subscripting
  -objcmt-ns-nonatomic-iosonly
                          Enable migration to use NS_NONATOMIC_IOSONLY macro for setting property's 'atomic' attribute
  -objcmt-returns-innerpointer-property
                          Enable migration to annotate property with NS_RETURNS_INNER_POINTER
  -objcmt-whitelist-dir-path=<value>
                          Only modify files with a filename contained in the provided directory path
  -ObjC                   Treat source input files as Objective-C inputs
  --offload-arch=<value>  CUDA/HIP offloading device architecture (e.g. sm_35, gfx906).  May be specified more than once.
  -o <file>               Write output to <file>
  -pg                     Enable mcount instrumentation
  -pipe                   Use pipes between commands, when possible
  --precompile            Only precompile the input
  -print-effective-triple Print the effective target triple
  -print-file-name=<file> Print the full library path of <file>
  -print-ivar-layout      Enable Objective-C Ivar layout bitmap print trace
  -print-libgcc-file-name Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang_rt.builtins.*.a")
  -print-prog-name=<name> Print the full program path of <name>
  -print-resource-dir     Print the resource directory pathname
  -print-search-dirs      Print the paths used for finding libraries and programs
  -print-supported-cpus   Print supported cpu models for the given target (if target is not specified, it will print the supported cpus for the default target)
  -print-target-triple    Print the normalized target triple
  -print-targets          Print the registered targets
  -pthread                Support POSIX threads in generated code
  --ptxas-path=<value>    Path to ptxas (used for compiling CUDA code)
  -P                      Disable linemarker output in -E mode
  -Qn                     Do not emit metadata containing compiler name and version
  -Qunused-arguments      Don't emit warning for unused driver arguments
  -Qy                     Emit metadata containing compiler name and version
  -relocatable-pch        Whether to build a relocatable precompiled header
  -rewrite-legacy-objc    Rewrite Legacy Objective-C source to C++
  -rewrite-objc           Rewrite Objective-C source to C++
  --rocm-device-lib-path=<value>
                          ROCm device library path. Alternative to rocm-path.
  --rocm-path=<value>     ROCm installation path, used for finding and automatically linking required bitcode libraries.
  -Rpass-analysis=<value> Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
  -Rpass-missed=<value>   Report missed transformations by optimization passes whose name matches the given POSIX regular expression
  -Rpass=<value>          Report transformations performed by optimization passes whose name matches the given POSIX regular expression
  -rtlib=<value>          Compiler runtime library to use
  -R<remark>              Enable the specified remark
  -save-stats=<value>     Save llvm statistics.
  -save-stats             Save llvm statistics.
  -save-temps=<value>     Save intermediate compilation results.
  -save-temps             Save intermediate compilation results
  -serialize-diagnostics <value>
                          Serialize compiler diagnostics to a file
  -shared-libsan          Dynamically link the sanitizer runtime
  -static-libsan          Statically link the sanitizer runtime
  -static-openmp          Use the static host OpenMP runtime while linking.
  -std=<value>            Language standard to compile for
  -stdlib++-isystem <directory>
                          Use directory as the C++ standard library include path
  -stdlib=<value>         C++ standard library to use
  -sycl-std=<value>       SYCL language standard to compile for.
  --system-header-prefix=<prefix>
                          Treat all #include paths starting with <prefix> as including a system header.
  -S                      Only run preprocess and compilation steps
  --target=<value>        Generate code for the given target
  -Tbss <addr>            Set starting address of BSS to <addr>
  -Tdata <addr>           Set starting address of DATA to <addr>
  -time                   Time individual commands
  -traditional-cpp        Enable some traditional CPP emulation
  -trigraphs              Process trigraph sequences
  -Ttext <addr>           Set starting address of TEXT to <addr>
  -T <script>             Specify <script> as linker script
  -undef                  undef all system defines
  -unwindlib=<value>      Unwind library to use
  -U <macro>              Undefine macro <macro>
  --verify-debug-info     Verify the binary representation of debug output
  -verify-pch             Load and verify that a pre-compiled header file is not stale
  --version               Print version information
  -v                      Show commands to run and use verbose output
  -Wa,<arg>               Pass the comma separated arguments in <arg> to the assembler
  -Wdeprecated            Enable warnings for deprecated constructs and define __DEPRECATED
  -Wl,<arg>               Pass the comma separated arguments in <arg> to the linker
  -working-directory <value>
                          Resolve file paths relative to the specified directory
  -Wp,<arg>               Pass the comma separated arguments in <arg> to the preprocessor
  -W<warning>             Enable the specified warning
  -w                      Suppress all warnings
  -Xanalyzer <arg>        Pass <arg> to the static analyzer
  -Xarch_device <arg>     Pass <arg> to the CUDA/HIP device compilation
  -Xarch_host <arg>       Pass <arg> to the CUDA/HIP host compilation
  -Xassembler <arg>       Pass <arg> to the assembler
  -Xclang <arg>           Pass <arg> to the clang compiler
  -Xcuda-fatbinary <arg>  Pass <arg> to fatbinary invocation
  -Xcuda-ptxas <arg>      Pass <arg> to the ptxas assembler
  -Xlinker <arg>          Pass <arg> to the linker
  -Xopenmp-target=<triple> <arg>
                          Pass <arg> to the target offloading toolchain identified by <triple>.
  -Xopenmp-target <arg>   Pass <arg> to the target offloading toolchain.
  -Xpreprocessor <arg>    Pass <arg> to the preprocessor
  -x <language>           Treat subsequent input files as having type <language>
  -z <arg>                Pass -z <arg> to the linker

clang-format

Clang-format is both a library and a stand-alone tool with the goal of automatically reformatting C++ sources files according to configurable style guides. To do so, clang-format uses Clang’s Lexer to transform an input file into a token stream and then changes all the whitespace around those tokens. The goal is for clang-format to both serve both as a user tool (ideally with powerful IDE integrations) and part of other refactoring tools, e.g. to do a reformatting of all the lines changed during a renaming.

This is a dependency package providing the clang format tool.

Installed size: 30 KB
How to install: sudo apt install clang-format

  • clang-format-11
clang-format

Manual page for clang-format 11

root@kali:~# clang-format --help
OVERVIEW: A tool to format C/C++/Java/JavaScript/Objective-C/Protobuf/C# code.

If no arguments are specified, it formats the code from standard input
and writes the result to the standard output.
If <file>s are given, it reformats the files. If -i is specified
together with <file>s, the files are edited in-place. Otherwise, the
result is written to the standard output.

USAGE: clang-format [options] [<file> ...]

OPTIONS:

Clang-format options:

  --Werror                   - If set, changes formatting warnings to errors
  --assume-filename=<string> - Override filename used to determine the language.
                               When reading from stdin, clang-format assumes this
                               filename to determine the language.
  --cursor=<uint>            - The position of the cursor when invoking
                               clang-format from an editor integration
  --dry-run                  - If set, do not actually make the formatting changes
  --dump-config              - Dump configuration options to stdout and exit.
                               Can be used with -style option.
  --fallback-style=<string>  - The name of the predefined style used as a
                               fallback in case clang-format is invoked with
                               -style=file, but can not find the .clang-format
                               file to use.
                               Use -fallback-style=none to skip formatting.
  --ferror-limit=<uint>      - Set the maximum number of clang-format errors to emit before stopping (0 = no limit). Used only with --dry-run or -n
  -i                         - Inplace edit <file>s, if specified.
  --length=<uint>            - Format a range of this length (in bytes).
                               Multiple ranges can be formatted by specifying
                               several -offset and -length pairs.
                               When only a single -offset is specified without
                               -length, clang-format will format up to the end
                               of the file.
                               Can only be used with one input file.
  --lines=<string>           - <start line>:<end line> - format a range of
                               lines (both 1-based).
                               Multiple ranges can be formatted by specifying
                               several -lines arguments.
                               Can't be used with -offset and -length.
                               Can only be used with one input file.
  -n                         - Alias for --dry-run
  --offset=<uint>            - Format a range starting at this byte offset.
                               Multiple ranges can be formatted by specifying
                               several -offset and -length pairs.
                               Can only be used with one input file.
  --output-replacements-xml  - Output replacements as XML.
  --sort-includes            - If set, overrides the include sorting behavior determined by the SortIncludes style flag
  --style=<string>           - Coding style, currently supports:
                                 LLVM, GNU, Google, Chromium, Microsoft, Mozilla, WebKit.
                               Use -style=file to load style configuration from
                               .clang-format file located in one of the parent
                               directories of the source file (or current
                               directory for stdin).
                               Use -style="{key: value, ...}" to set specific
                               parameters, e.g.:
                                 -style="{BasedOnStyle: llvm, IndentWidth: 8}"
  --verbose                  - If set, shows the list of processed files

Generic Options:

  --help                     - Display available options (--help-hidden for more)
  --help-list                - Display list of available options (--help-list-hidden for more)
  --version                  - Display the version of this program

clang-format-diff

Manual page for clang-format-diff.py 11

root@kali:~# clang-format-diff -h
usage: clang-format-diff [-h] [-i] [-p NUM] [-regex PATTERN] [-iregex PATTERN]
                         [-sort-includes] [-v] [-style STYLE] [-binary BINARY]

This script reads input from a unified diff and reformats all the changed
lines. This is useful to reformat all the lines touched by a specific patch.
Example usage for git/svn users:

  git diff -U0 --no-color --relative HEAD^ | clang-format-diff.py -p1 -i
  svn diff --diff-cmd=diff -x-U0 | clang-format-diff.py -i

It should be noted that the filename contained in the diff is used unmodified
to determine the source file to update. Users calling this script directly
should be careful to ensure that the path in the diff is correct relative to the
current working directory.

optional arguments:
  -h, --help       show this help message and exit
  -i               apply edits to files instead of displaying a diff
  -p NUM           strip the smallest prefix containing P slashes
  -regex PATTERN   custom pattern selecting file paths to reformat (case
                   sensitive, overrides -iregex)
  -iregex PATTERN  custom pattern selecting file paths to reformat (case
                   insensitive, overridden by -regex)
  -sort-includes   let clang-format sort include blocks
  -v, --verbose    be more verbose, ineffective without -i
  -style STYLE     formatting style to apply (LLVM, GNU, Google, Chromium,
                   Microsoft, Mozilla, WebKit)
  -binary BINARY   location of binary to use for clang-format

git-clang-format

clang-tidy

Provide an extensible framework for diagnosing and fixing typical programming errors, like style violations, interface misuse, or bugs that can be deduced via static analysis. clang-tidy is modular and provides a convenient interface for writing new checks.

clang-tidy replaces clang-modernize

This is a dependency package providing the clang tidy tool.

Installed size: 22 KB
How to install: sudo apt install clang-tidy

  • clang-tidy-11
clang-tidy

Manual page for clang-tidy 11

root@kali:~# clang-tidy -h
USAGE: clang-tidy [options] <source0> [... <sourceN>]

OPTIONS:

Generic Options:

  --help                         - Display available options (--help-hidden for more)
  --help-list                    - Display list of available options (--help-list-hidden for more)
  --version                      - Display the version of this program

clang-tidy options:

  --checks=<string>              - 
                                   Comma-separated list of globs with optional '-'
                                   prefix. Globs are processed in order of
                                   appearance in the list. Globs without '-'
                                   prefix add checks with matching names to the
                                   set, globs with the '-' prefix remove checks
                                   with matching names from the set of enabled
                                   checks. This option's value is appended to the
                                   value of the 'Checks' option in .clang-tidy
                                   file, if any.
  --config=<string>              - 
                                   Specifies a configuration in YAML/JSON format:
                                     -config="{Checks: '*',
                                               CheckOptions: [{key: x,
                                                               value: y}]}"
                                   When the value is empty, clang-tidy will
                                   attempt to find a file named .clang-tidy for
                                   each source file in its parent directories.
  --dump-config                  - 
                                   Dumps configuration in the YAML format to
                                   stdout. This option can be used along with a
                                   file name (and '--' if the file is outside of a
                                   project with configured compilation database).
                                   The configuration used for this file will be
                                   printed.
                                   Use along with -checks=* to include
                                   configuration of all checks.
  --enable-check-profile         - 
                                   Enable per-check timing profiles, and print a
                                   report to stderr.
  --explain-config               - 
                                   For each enabled check explains, where it is
                                   enabled, i.e. in clang-tidy binary, command
                                   line or a specific configuration file.
  --export-fixes=<filename>      - 
                                   YAML file to store suggested fixes in. The
                                   stored fixes can be applied to the input source
                                   code with clang-apply-replacements.
  --extra-arg=<string>           - Additional argument to append to the compiler command line
  --extra-arg-before=<string>    - Additional argument to prepend to the compiler command line
  --fix                          - 
                                   Apply suggested fixes. Without -fix-errors
                                   clang-tidy will bail out if any compilation
                                   errors were found.
  --fix-errors                   - 
                                   Apply suggested fixes even if compilation
                                   errors were found. If compiler errors have
                                   attached fix-its, clang-tidy will apply them as
                                   well.
  --format-style=<string>        - 
                                   Style for formatting code around applied fixes:
                                     - 'none' (default) turns off formatting
                                     - 'file' (literally 'file', not a placeholder)
                                       uses .clang-format file in the closest parent
                                       directory
                                     - '{ <json> }' specifies options inline, e.g.
                                       -format-style='{BasedOnStyle: llvm, IndentWidth: 8}'
                                     - 'llvm', 'google', 'webkit', 'mozilla'
                                   See clang-format documentation for the up-to-date
                                   information about formatting styles and options.
                                   This option overrides the 'FormatStyle` option in
                                   .clang-tidy file, if any.
  --header-filter=<string>       - 
                                   Regular expression matching the names of the
                                   headers to output diagnostics from. Diagnostics
                                   from the main file of each translation unit are
                                   always displayed.
                                   Can be used together with -line-filter.
                                   This option overrides the 'HeaderFilterRegex'
                                   option in .clang-tidy file, if any.
  --line-filter=<string>         - 
                                   List of files with line ranges to filter the
                                   warnings. Can be used together with
                                   -header-filter. The format of the list is a
                                   JSON array of objects:
                                     [
                                       {"name":"file1.cpp","lines":[[1,3],[5,7]]},
                                       {"name":"file2.h"}
                                     ]
  --list-checks                  - 
                                   List all enabled checks and exit. Use with
                                   -checks=* to list all available checks.
  -p=<string>                    - Build path
  --quiet                        - 
                                   Run clang-tidy in quiet mode. This suppresses
                                   printing statistics about ignored warnings and
                                   warnings treated as errors if the respective
                                   options are specified.
  --store-check-profile=<prefix> - 
                                   By default reports are printed in tabulated
                                   format to stderr. When this option is passed,
                                   these per-TU profiles are instead stored as JSON.
  --system-headers               - Display the errors from system headers.
  --use-color                    - 
                                   Use colors in diagnostics. If not set, colors
                                   will be used if the terminal connected to
                                   standard output supports colors.
                                   This option overrides the 'UseColor' option in
                                   .clang-tidy file, if any.
  --vfsoverlay=<filename>        - 
                                   Overlay the virtual filesystem described by file
                                   over the real file system.
  --warnings-as-errors=<string>  - 
                                   Upgrades warnings to errors. Same format as
                                   '-checks'.
                                   This option's value is appended to the value of
                                   the 'WarningsAsErrors' option in .clang-tidy
                                   file, if any.

-p <build-path> is used to read a compile command database.

	For example, it can be a CMake build directory in which a file named
	compile_commands.json exists (use -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
	CMake option to get this output). When no build path is specified,
	a search for compile_commands.json will be attempted through all
	parent paths of the first input file . See:
	https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an
	example of setting up Clang Tooling on a source tree.

<source0> ... specify the paths of source files. These paths are
	looked up in the compile command database. If the path of a file is
	absolute, it needs to point into CMake's source tree. If the path is
	relative, the current working directory needs to be in the CMake
	source tree and the file must be in a subdirectory of the current
	working directory. "./" prefixes in the relative files will be
	automatically removed, but the rest of a relative path must be a
	suffix of a path in the compile command database.


Configuration files:
  clang-tidy attempts to read configuration for each source file from a
  .clang-tidy file located in the closest parent directory of the source
  file. If InheritParentConfig is true in a config file, the configuration file
  in the parent directory (if any exists) will be taken and current config file
  will be applied on top of the parent one. If any configuration options have
  a corresponding command-line option, command-line option takes precedence.
  The effective configuration can be inspected using -dump-config:

    $ clang-tidy -dump-config
    ---
    Checks:              '-*,some-check'
    WarningsAsErrors:    ''
    HeaderFilterRegex:   ''
    FormatStyle:         none
    InheritParentConfig: true
    User:                user
    CheckOptions:
      - key:             some-check.SomeOption
        value:           'some value'
    ...


clang-tidy-diff
root@kali:~# clang-tidy-diff -h
usage: clang-tidy-diff [-h] [-clang-tidy-binary PATH] [-p NUM]
                       [-regex PATTERN] [-iregex PATTERN] [-j J]
                       [-timeout TIMEOUT] [-fix] [-checks CHECKS]
                       [-path BUILD_PATH] [-export-fixes FILE]
                       [-extra-arg EXTRA_ARG]
                       [-extra-arg-before EXTRA_ARG_BEFORE] [-quiet]

Run clang-tidy against changed files, and output diagnostics only for modified
lines.

optional arguments:
  -h, --help            show this help message and exit
  -clang-tidy-binary PATH
                        path to clang-tidy binary
  -p NUM                strip the smallest prefix containing P slashes
  -regex PATTERN        custom pattern selecting file paths to check (case
                        sensitive, overrides -iregex)
  -iregex PATTERN       custom pattern selecting file paths to check (case
                        insensitive, overridden by -regex)
  -j J                  number of tidy instances to be run in parallel.
  -timeout TIMEOUT      timeout per each file in seconds.
  -fix                  apply suggested fixes
  -checks CHECKS        checks filter, when not specified, use clang-tidy
                        default
  -path BUILD_PATH      Path used to read a compile command database.
  -export-fixes FILE    Create a yaml file to store suggested fixes in, which
                        can be applied with clang-apply-replacements.
  -extra-arg EXTRA_ARG  Additional argument to append to the compiler command
                        line.
  -extra-arg-before EXTRA_ARG_BEFORE
                        Additional argument to prepend to the compiler command
                        line.
  -quiet                Run clang-tidy in quiet mode

run-clang-tidy
root@kali:~# run-clang-tidy -h
usage: run-clang-tidy [-h] [-allow-enabling-alpha-checkers]
                      [-clang-tidy-binary PATH]
                      [-clang-apply-replacements-binary PATH] [-checks CHECKS]
                      [-config CONFIG] [-header-filter HEADER_FILTER]
                      [-export-fixes filename] [-j J] [-fix] [-format]
                      [-style STYLE] [-p BUILD_PATH] [-extra-arg EXTRA_ARG]
                      [-extra-arg-before EXTRA_ARG_BEFORE] [-quiet]
                      [files ...]

Runs clang-tidy over all files in a compilation database. Requires clang-tidy
and clang-apply-replacements in $PATH.

positional arguments:
  files                 files to be processed (regex on path)

optional arguments:
  -h, --help            show this help message and exit
  -allow-enabling-alpha-checkers
                        allow alpha checkers from clang-analyzer.
  -clang-tidy-binary PATH
                        path to clang-tidy binary
  -clang-apply-replacements-binary PATH
                        path to clang-apply-replacements binary
  -checks CHECKS        checks filter, when not specified, use clang-tidy
                        default
  -config CONFIG        Specifies a configuration in YAML/JSON format:
                        -config="{Checks: '*', CheckOptions: [{key: x, value:
                        y}]}" When the value is empty, clang-tidy will attempt
                        to find a file named .clang-tidy for each source file
                        in its parent directories.
  -header-filter HEADER_FILTER
                        regular expression matching the names of the headers
                        to output diagnostics from. Diagnostics from the main
                        file of each translation unit are always displayed.
  -export-fixes filename
                        Create a yaml file to store suggested fixes in, which
                        can be applied with clang-apply-replacements.
  -j J                  number of tidy instances to be run in parallel.
  -fix                  apply fix-its
  -format               Reformat code after applying fixes
  -style STYLE          The style of reformat code after applying fixes
  -p BUILD_PATH         Path used to read a compile command database.
  -extra-arg EXTRA_ARG  Additional argument to append to the compiler command
                        line.
  -extra-arg-before EXTRA_ARG_BEFORE
                        Additional argument to prepend to the compiler command
                        line.
  -quiet                Run clang-tidy in quiet mode

clang-tools

Clang project is a C, C++, Objective C and Objective C++ front-end for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC).

Clang implements all of the ISO C++ 1998, 11 and 14 standards and also provides most of the support of C++17.

This is a dependency package providing the clang tools package.

Installed size: 31 KB
How to install: sudo apt install clang-tools

  • clang-tools-11
c-index-test
root@kali:~# c-index-test -h
usage: c-index-test -code-completion-at=<site> <compiler arguments>
       c-index-test -code-completion-timing=<site> <compiler arguments>
       c-index-test -cursor-at=<site> <compiler arguments>
       c-index-test -evaluate-cursor-at=<site> <compiler arguments>
       c-index-test -get-macro-info-cursor-at=<site> <compiler arguments>
       c-index-test -file-refs-at=<site> <compiler arguments>
       c-index-test -file-includes-in=<filename> <compiler arguments>
       c-index-test -index-file [-check-prefix=<FileCheck prefix>] <compiler arguments>
       c-index-test -index-file-full [-check-prefix=<FileCheck prefix>] <compiler arguments>
       c-index-test -index-tu [-check-prefix=<FileCheck prefix>] <AST file>
       c-index-test -index-compile-db [-check-prefix=<FileCheck prefix>] <compilation database>
       c-index-test -test-file-scan <AST file> <source file> [FileCheck prefix]
       c-index-test -test-load-tu <AST file> <symbol filter> [FileCheck prefix]
       c-index-test -test-load-tu-usrs <AST file> <symbol filter> [FileCheck prefix]
       c-index-test -test-load-source <symbol filter> {<args>}*
       c-index-test -test-load-source-memory-usage <symbol filter> {<args>}*
       c-index-test -test-load-source-reparse <trials> <symbol filter>           {<args>}*
       c-index-test -test-load-source-usrs <symbol filter> {<args>}*
       c-index-test -test-load-source-usrs-memory-usage <symbol filter> {<args>}*
       c-index-test -test-annotate-tokens=<range> {<args>}*
       c-index-test -test-inclusion-stack-source {<args>}*
       c-index-test -test-inclusion-stack-tu <AST file>
       c-index-test -test-print-linkage-source {<args>}*
       c-index-test -test-print-visibility {<args>}*
       c-index-test -test-print-type {<args>}*
       c-index-test -test-print-type-size {<args>}*
       c-index-test -test-print-bitwidth {<args>}*
       c-index-test -test-print-target-info {<args>}*
       c-index-test -test-print-type-declaration {<args>}*
       c-index-test -print-usr [<CursorKind> {<args>}]*
       c-index-test -print-usr-file <file>
       c-index-test -write-pch <file> <compiler arguments>
       c-index-test -compilation-db [lookup <filename>] database
       c-index-test -print-build-session-timestamp
       c-index-test -read-diagnostics <file>

 <symbol filter> values:
   all - load all symbols, including those from PCH
   local - load all symbols except those in PCH
   category - only load ObjC categories (non-PCH)
   interface - only load ObjC interfaces (non-PCH)
   protocol - only load ObjC protocols (non-PCH)
   function - only load functions (non-PCH)
   typedef - only load typdefs (non-PCH)
   scan-function - scan function bodies (non-PCH)


clang-apply-replacements

Manual page for clang-apply-replacements 11

root@kali:~# clang-apply-replacements -h
USAGE: clang-apply-replacements [options] <Search Root Directory>

OPTIONS:

Formatting Options:

  --format                   - Enable formatting of code changed by applying replacements.
                               Use -style to choose formatting style.
  --style=<string>           - Coding style, currently supports:
                                 LLVM, GNU, Google, Chromium, Microsoft, Mozilla, WebKit.
                               Use -style=file to load style configuration from
                               .clang-format file located in one of the parent
                               directories of the source file (or current
                               directory for stdin).
                               Use -style="{key: value, ...}" to set specific
                               parameters, e.g.:
                                 -style="{BasedOnStyle: llvm, IndentWidth: 8}"
  --style-config=<string>    - Path to a directory containing a .clang-format file
                               describing a formatting style to use for formatting
                               code when -style=file.

Generic Options:

  --help                     - Display available options (--help-hidden for more)
  --help-list                - Display list of available options (--help-list-hidden for more)
  --version                  - Display the version of this program

Replacement Options:

  --remove-change-desc-files - Remove the change description files regardless of successful
                               merging/replacing.

clang-check

Manual page for clang-check 11

root@kali:~# clang-check -h
USAGE: clang-check [options] <source0> [... <sourceN>]

OPTIONS:

Generic Options:

  --help                      - Display available options (--help-hidden for more)
  --help-list                 - Display list of available options (--help-list-hidden for more)
  --version                   - Display the version of this program

clang-check options:

  --analyze                   - Run static analysis engine
  --ast-dump                  - Build ASTs and then debug dump them
  --ast-dump-filter=<string>  - Use with -ast-dump or -ast-print to dump/print only AST declaration nodes having a certain substring in a qualified name. Use -ast-list to list all filterable declaration node names.
  --ast-list                  - Build ASTs and print the list of declaration node qualified names
  --ast-print                 - Build ASTs and then pretty-print them
  --extra-arg=<string>        - Additional argument to append to the compiler command line
  --extra-arg-before=<string> - Additional argument to prepend to the compiler command line
  --fix-what-you-can          - Apply fix-it advice even in the presence of unfixable errors
  --fixit                     - Apply fix-it advice to the input source
  -p=<string>                 - Build path

-p <build-path> is used to read a compile command database.

	For example, it can be a CMake build directory in which a file named
	compile_commands.json exists (use -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
	CMake option to get this output). When no build path is specified,
	a search for compile_commands.json will be attempted through all
	parent paths of the first input file . See:
	https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an
	example of setting up Clang Tooling on a source tree.

<source0> ... specify the paths of source files. These paths are
	looked up in the compile command database. If the path of a file is
	absolute, it needs to point into CMake's source tree. If the path is
	relative, the current working directory needs to be in the CMake
	source tree and the file must be in a subdirectory of the current
	working directory. "./" prefixes in the relative files will be
	automatically removed, but the rest of a relative path must be a
	suffix of a path in the compile command database.

	For example, to run clang-check on all files in a subtree of the
	source tree, use:

	  find path/in/subtree -name '*.cpp'|xargs clang-check

	or using a specific build path:

	  find path/in/subtree -name '*.cpp'|xargs clang-check -p build/path

	Note, that path/in/subtree and current directory should follow the
	rules described above.


clang-query

Manual page for clang-query 11

root@kali:~# clang-query -h
USAGE: clang-query [options] <source0> [... <sourceN>]

OPTIONS:

Generic Options:

  --help                      - Display available options (--help-hidden for more)
  --help-list                 - Display list of available options (--help-list-hidden for more)
  --version                   - Display the version of this program

clang-query options:

  -c=<command>                - Specify command to run
  --extra-arg=<string>        - Additional argument to append to the compiler command line
  --extra-arg-before=<string> - Additional argument to prepend to the compiler command line
  -f=<file>                   - Read commands from file
  -p=<string>                 - Build path
  --preload=<file>            - Preload commands from file and start interactive mode

-p <build-path> is used to read a compile command database.

	For example, it can be a CMake build directory in which a file named
	compile_commands.json exists (use -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
	CMake option to get this output). When no build path is specified,
	a search for compile_commands.json will be attempted through all
	parent paths of the first input file . See:
	https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an
	example of setting up Clang Tooling on a source tree.

<source0> ... specify the paths of source files. These paths are
	looked up in the compile command database. If the path of a file is
	absolute, it needs to point into CMake's source tree. If the path is
	relative, the current working directory needs to be in the CMake
	source tree and the file must be in a subdirectory of the current
	working directory. "./" prefixes in the relative files will be
	automatically removed, but the rest of a relative path must be a
	suffix of a path in the compile command database.


sancov

Manual page for sancov 11

root@kali:~# sancov -h
OVERVIEW: Sanitizer Coverage Processing Tool (sancov)

  This tool can extract various coverage-related information from: 
  coverage-instrumented binary files, raw .sancov files and their symbolized .symcov version.
  Depending on chosen action the tool expects different input files:
    -print-coverage-pcs     - coverage-instrumented binary files
    -print-coverage         - .sancov files
    <other actions>         - .sancov files & corresponding binary files, .symcov files

USAGE: sancov [options] <action> <binary files...> <.sancov files...> <.symcov files...>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --blacklist=<string>                               - Blacklist file (sanitizer blacklist format).
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  Action (required)
      --print                                           - Print coverage addresses
      --print-coverage-pcs                              - Print coverage instrumentation points addresses.
      --covered-functions                               - Print all covered funcions.
      --not-covered-functions                           - Print all not covered funcions.
      --print-coverage-stats                            - Print coverage statistics.
      --html-report                                     - REMOVED. Use -symbolize & coverage-report-server.py.
      --symbolize                                       - Produces a symbolized JSON report from binary report.
      --merge                                           - Merges reports.
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --demangle                                         - Print demangled function name.
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --skip-dead-files                                  - Do not list dead source files in reports.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --strip_path_prefix=<string>                       - Strip this prefix from file paths in reports.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

scan-build

Clang static analyzer

root@kali:~# scan-build -h
USAGE: scan-build [options] <build command> [build options]

OPTIONS:

 -analyze-headers

   Also analyze functions in #included files.  By default, such functions
   are skipped unless they are called by functions within the main source file.

 --force-analyze-debug-code

   Tells analyzer to enable assertions in code even if they were disabled
   during compilation to enable more precise results.

 -o <output location>

   Specifies the output directory for analyzer reports. Subdirectories will be
   created as needed to represent separate "runs" of the analyzer. If this
   option is not specified, a directory is created in /tmp (TMPDIR on Mac OS X)
   to store the reports.

 -h
 --help

   Display this message.

 -k
 --keep-going

   Add a "keep on going" option to the specified build command. This option
   currently supports make and xcodebuild. This is a convenience option; one
   can specify this behavior directly using build options.

 --keep-cc

   Do not override CC and CXX make variables. Useful when running make in
   autoconf-based (and similar) projects where configure can add extra flags
   to those variables.

 --html-title [title]
 --html-title=[title]

   Specify the title used on generated HTML pages. If not specified, a default
   title will be used.

 --show-description

   Display the description of defects in the list

 -sarif

  By default the output of scan-build is a set of HTML files. This option
  outputs the results in SARIF format.
 
 -plist

   By default the output of scan-build is a set of HTML files. This option
   outputs the results as a set of .plist files.

 -plist-html

   By default the output of scan-build is a set of HTML files. This option
   outputs the results as a set of HTML and .plist files.

 --status-bugs

   By default, the exit status of scan-build is the same as the executed build
   command. Specifying this option causes the exit status of scan-build to be 1
   if it found potential bugs and the exit status of the build itself otherwise.

 --exclude <path>

   Do not run static analyzer against files found in this
   directory (You can specify this option multiple times).
   Could be useful when project contains 3rd party libraries.

 --use-cc [compiler path]
 --use-cc=[compiler path]

   scan-build analyzes a project by interposing a "fake compiler", which
   executes a real compiler for compilation and the static analyzer for analysis.
   Because of the current implementation of interposition, scan-build does not
   know what compiler your project normally uses.  Instead, it simply overrides
   the CC environment variable, and guesses your default compiler.

   In the future, this interposition mechanism to be improved, but if you need
   scan-build to use a specific compiler for *compilation* then you can use
   this option to specify a path to that compiler.

   If the given compiler is a cross compiler, you may also need to provide
   --analyzer-target option to properly analyze the source code because static
   analyzer runs as if the code is compiled for the host machine by default.

 --use-c++ [compiler path]
 --use-c++=[compiler path]

   This is the same as "--use-cc" but for C++ code.

 --analyzer-target [target triple name for analysis]
 --analyzer-target=[target triple name for analysis]

   This provides target triple information to clang static analyzer.
   It only changes the target for analysis but doesn't change the target of a
   real compiler given by --use-cc and --use-c++ options.

 -v

   Enable verbose output from scan-build. A second and third '-v' increases
   verbosity.

 -V
 --view

   View analysis results in a web browser when the build completes.

 --generate-index-only <output location>

   Do not perform the analysis, but only regenerate the index.html file
   from existing report.html files. Useful for making a custom Static Analyzer
   integration into a build system that isn't otherwise supported by scan-build.

ADVANCED OPTIONS:

 -no-failure-reports

   Do not create a 'failures' subdirectory that includes analyzer crash reports
   and preprocessed source files.

 -stats

   Generates visitation statistics for the project being analyzed.

 -maxloop <loop count>

   Specify the number of times a block can be visited before giving up.
   Default is 4. Increase for more comprehensive coverage at a cost of speed.

 -internal-stats

   Generate internal analyzer statistics.

 --use-analyzer [Xcode|path to clang]
 --use-analyzer=[Xcode|path to clang]

   scan-build uses the 'clang' executable relative to itself for static
   analysis. One can override this behavior with this option by using the
   'clang' packaged with Xcode (on OS X) or from the PATH.

 --keep-empty

   Don't remove the build results directory even if no issues were reported.

 --override-compiler
   Always resort to the ccc-analyzer even when better interposition methods
   are available.

 -analyzer-config <options>

   Provide options to pass through to the analyzer's -analyzer-config flag.
   Several options are separated with comma: 'key1=val1,key2=val2'

   Available options:
     * stable-report-filename=true or false (default)
       Switch the page naming to:
       report-<filename>-<function/method name>-<id>.html
       instead of report-XXXXXX.html

CONTROLLING CHECKERS:

 A default group of checkers are always run unless explicitly disabled.
 Checkers may be enabled/disabled using the following options:

 -enable-checker [checker name]
 -disable-checker [checker name]

LOADING CHECKERS:

 Loading external checkers using the clang plugin interface:

 -load-plugin [plugin library]

AVAILABLE CHECKERS:

 + core.CallAndMessage           Check for logical errors for function calls and Objective-C message expressions (e.g., uninitialized arguments, null function pointers)
 + core.DivideZero               Check for division by zero
 + core.NonNullParamChecker      Check for null pointers passed as arguments to a function whose arguments are references or marked with the 'nonnull' attribute
 + core.NullDereference          Check for dereferences of null pointers
 + core.StackAddressEscape       Check that addresses to stack memory do not escape the function
 + core.UndefinedBinaryOperatorResult
                                 Check for undefined results of binary operators
 + core.VLASize                  Check for declarations of VLA of undefined or zero size
 + core.uninitialized.ArraySubscript
                                 Check for uninitialized values used as array subscripts
 + core.uninitialized.Assign     Check for assigning uninitialized values
 + core.uninitialized.Branch     Check for uninitialized values used as branch conditions
 + core.uninitialized.CapturedBlockVariable
                                 Check for blocks that capture uninitialized values
 + core.uninitialized.UndefReturn Check for uninitialized values being returned to the caller
 + cplusplus.InnerPointer        Check for inner pointers of C++ containers used after re/deallocation
 + cplusplus.Move                Find use-after-move bugs in C++
 + cplusplus.NewDelete           Check for double-free and use-after-free problems. Traces memory managed by new/delete.
 + cplusplus.NewDeleteLeaks      Check for memory leaks. Traces memory managed by new/delete.
 + cplusplus.PlacementNew        Check if default placement new is provided with pointers to sufficient storage capacity
 + cplusplus.PureVirtualCall     Check pure virtual function calls during construction/destruction
 + deadcode.DeadStores           Check for values stored to variables that are never read afterwards
   fuchsia.HandleChecker         A Checker that detect leaks related to Fuchsia handles
 + nullability.NullPassedToNonnull
                                 Warns when a null pointer is passed to a pointer which has a _Nonnull type.
 + nullability.NullReturnedFromNonnull
                                 Warns when a null pointer is returned from a function that has _Nonnull return type.
   nullability.NullableDereferenced
                                 Warns when a nullable pointer is dereferenced.
   nullability.NullablePassedToNonnull
                                 Warns when a nullable pointer is passed to a pointer which has a _Nonnull type.
   nullability.NullableReturnedFromNonnull
                                 Warns when a nullable pointer is returned from a function that has _Nonnull return type.
   optin.cplusplus.UninitializedObject
                                 Reports uninitialized fields after object construction
   optin.cplusplus.VirtualCall   Check virtual function calls during construction/destruction
   optin.mpi.MPI-Checker         Checks MPI code
   optin.osx.OSObjectCStyleCast  Checker for C-style casts of OSObjects
   optin.osx.cocoa.localizability.EmptyLocalizationContextChecker
                                 Check that NSLocalizedString macros include a comment for context
   optin.osx.cocoa.localizability.NonLocalizedStringChecker
                                 Warns about uses of non-localized NSStrings passed to UI methods expecting localized NSStrings
   optin.performance.GCDAntipattern
                                 Check for performance anti-patterns when using Grand Central Dispatch
   optin.performance.Padding     Check for excessively padded structs.
   optin.portability.UnixAPI     Finds implementation-defined behavior in UNIX/Posix functions
   osx.API                       Check for proper uses of various Apple APIs
   osx.MIG                       Find violations of the Mach Interface Generator calling convention
   osx.NumberObjectConversion    Check for erroneous conversions of objects representing numbers into numbers
   osx.OSObjectRetainCount       Check for leaks and improper reference count management for OSObject
   osx.ObjCProperty              Check for proper uses of Objective-C properties
   osx.SecKeychainAPI            Check for proper uses of Secure Keychain APIs
   osx.cocoa.AtSync              Check for nil pointers used as mutexes for @synchronized
   osx.cocoa.AutoreleaseWrite    Warn about potentially crashing writes to autoreleasing objects from different autoreleasing pools in Objective-C
   osx.cocoa.ClassRelease        Check for sending 'retain', 'release', or 'autorelease' directly to a Class
   osx.cocoa.Dealloc             Warn about Objective-C classes that lack a correct implementation of -dealloc
   osx.cocoa.IncompatibleMethodTypes
                                 Warn about Objective-C method signatures with type incompatibilities
   osx.cocoa.Loops               Improved modeling of loops using Cocoa collection types
   osx.cocoa.MissingSuperCall    Warn about Objective-C methods that lack a necessary call to super
   osx.cocoa.NSAutoreleasePool   Warn for suboptimal uses of NSAutoreleasePool in Objective-C GC mode
   osx.cocoa.NSError             Check usage of NSError** parameters
   osx.cocoa.NilArg              Check for prohibited nil arguments to ObjC method calls
   osx.cocoa.NonNilReturnValue   Model the APIs that are guaranteed to return a non-nil value
   osx.cocoa.ObjCGenerics        Check for type errors when using Objective-C generics
   osx.cocoa.RetainCount         Check for leaks and improper reference count management
   osx.cocoa.RunLoopAutoreleaseLeak
                                 Check for leaked memory in autorelease pools that will never be drained
   osx.cocoa.SelfInit            Check that 'self' is properly initialized inside an initializer method
   osx.cocoa.SuperDealloc        Warn about improper use of '[super dealloc]' in Objective-C
   osx.cocoa.UnusedIvars         Warn about private ivars that are never used
   osx.cocoa.VariadicMethodTypes Check for passing non-Objective-C types to variadic collection initialization methods that expect only Objective-C types
   osx.coreFoundation.CFError    Check usage of CFErrorRef* parameters
   osx.coreFoundation.CFNumber   Check for proper uses of CFNumber APIs
   osx.coreFoundation.CFRetainRelease
                                 Check for null arguments to CFRetain/CFRelease/CFMakeCollectable
   osx.coreFoundation.containers.OutOfBounds
                                 Checks for index out-of-bounds when using 'CFArray' API
   osx.coreFoundation.containers.PointerSizedValues
                                 Warns if 'CFArray', 'CFDictionary', 'CFSet' are created with non-pointer-size values
   security.FloatLoopCounter     Warn on using a floating point value as a loop counter (CERT: FLP30-C, FLP30-CPP)
   security.insecureAPI.DeprecatedOrUnsafeBufferHandling
                                 Warn on uses of unsecure or deprecated buffer manipulating functions
 + security.insecureAPI.UncheckedReturn
                                 Warn on uses of functions whose return values must be always checked
   security.insecureAPI.bcmp     Warn on uses of the 'bcmp' function
   security.insecureAPI.bcopy    Warn on uses of the 'bcopy' function
   security.insecureAPI.bzero    Warn on uses of the 'bzero' function
   security.insecureAPI.decodeValueOfObjCType
                                 Warn on uses of the '-decodeValueOfObjCType:at:' method
 + security.insecureAPI.getpw    Warn on uses of the 'getpw' function
 + security.insecureAPI.gets     Warn on uses of the 'gets' function
 + security.insecureAPI.mkstemp  Warn when 'mkstemp' is passed fewer than 6 X's in the format string
 + security.insecureAPI.mktemp   Warn on uses of the 'mktemp' function
   security.insecureAPI.rand     Warn on uses of the 'rand', 'random', and related functions
   security.insecureAPI.strcpy   Warn on uses of the 'strcpy' and 'strcat' functions
 + security.insecureAPI.vfork    Warn on uses of the 'vfork' function
 + unix.API                      Check calls to various UNIX/Posix functions
 + unix.Malloc                   Check for memory leaks, double free, and use-after-free problems. Traces memory managed by malloc()/free().
 + unix.MallocSizeof             Check for dubious malloc arguments involving sizeof
 + unix.MismatchedDeallocator    Check for mismatched deallocators.
 + unix.Vfork                    Check for proper usage of vfork
 + unix.cstring.BadSizeArg       Check the size argument passed into C string functions for common erroneous patterns
 + unix.cstring.NullArg          Check for null pointers being passed as arguments to C string functions
   valist.CopyToSelf             Check for va_lists which are copied onto itself.
   valist.Uninitialized          Check for usages of uninitialized (or already released) va_lists.
   valist.Unterminated           Check for va_lists which are not released by a va_end call.
   webkit.NoUncountedMemberChecker
                                 Check for no uncounted member variables.
   webkit.RefCntblBaseVirtualDtor Check for any ref-countable base class having virtual destructor.

NOTE: "+" indicates that an analysis is enabled by default.

BUILD OPTIONS

 You can specify any build option acceptable to the build command.

EXAMPLE

 scan-build -o /tmp/myhtmldir make -j4

The above example causes analysis reports to be deposited into a subdirectory
of "/tmp/myhtmldir" and to run "make" with the "-j4" option. A different
subdirectory is created each time scan-build analyzes a project. The analyzer
should support most parallel builds, but not distributed builds.


scan-view

Manual page for scan-view 11

root@kali:~# scan-view -h
usage: scan-view [-h] [--host HOST] [--port PORT] [--debug] [--auto-reload]
                 [--no-browser] [--allow-all-hosts]
                 <results directory>

The clang static analyzer results viewer.

positional arguments:
  <results directory>

optional arguments:
  -h, --help           show this help message and exit
  --host HOST          Host interface to listen on. (default=127.0.0.1)
  --port PORT          Port to listen on. (default=8181)
  --debug              Print additional debugging information.
  --auto-reload        Automatically update module for each request.
  --no-browser         Don't open a webbrowser on startup.
  --allow-all-hosts    Allow connections from any host (access restricted to
                       "127.0.0.1" by default)

clangd

clangd understands your C++ code and adds smart features to your editor:

  • code completion
  • compile errors
  • go-to-definition
  • and more.

clangd is a language server that implements the Language Server Protocol; it can work with many editors through a plugin.

This is a dependency package providing clangd.

Installed size: 20 KB
How to install: sudo apt install clangd

  • clangd-11
clangd

Manual page for clangd 11

root@kali:~# clangd -h
OVERVIEW: clangd is a language server that provides IDE-like features to editors.

It should be used via an editor plugin rather than invoked directly. For more information, see:
	https://clangd.llvm.org/
	https://microsoft.github.io/language-server-protocol/

clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment variable.

USAGE: clangd [options]

OPTIONS:

Generic Options:

  --help                          - Display available options (--help-hidden for more)
  --help-list                     - Display list of available options (--help-list-hidden for more)
  --version                       - Display the version of this program

clangd compilation flags options:

  --compile-commands-dir=<string> - Specify a path to look for compile_commands.json. If path is invalid, clangd will look in the current directory and parent paths of each source file
  --query-driver=<string>         - Comma separated list of globs for white-listing gcc-compatible drivers that are safe to execute. Drivers matching any of these globs will be used to extract system includes. e.g. /usr/bin/**/clang-*,/path/to/repo/**/g++-*

clangd feature options:

  --all-scopes-completion         - If set to true, code completion will include index symbols that are not defined in the scopes (e.g. namespaces) visible from the code completion point. Such completions can insert scope qualifiers
  --background-index              - Index project code in the background and persist index on disk.
  --clang-tidy                    - Enable clang-tidy diagnostics
  --clang-tidy-checks=<string>    - List of clang-tidy checks to run (this will override .clang-tidy files). Only meaningful when -clang-tidy flag is on
  --completion-style=<value>      - Granularity of code completion suggestions
    =detailed                     -   One completion item for each semantically distinct completion, with full type information
    =bundled                      -   Similar completion items (e.g. function overloads) are combined. Type information shown where possible
  --cross-file-rename             - Enable cross-file rename feature.
  --fallback-style=<string>       - clang-format style to apply by default when no .clang-format file is found
  --header-insertion=<value>      - Add #include directives when accepting code completions
    =iwyu                         -   Include what you use. Insert the owning header for top-level symbols, unless the header is already directly included or the symbol is forward-declared
    =never                        -   Never insert #include directives as part of code completion
  --header-insertion-decorators   - Prepend a circular dot or space before the completion label, depending on whether an include line will be inserted or not
  --limit-results=<int>           - Limit the number of results returned by clangd. 0 means no limit (default=100)
  --recovery-ast                  - Preserve expressions in AST for broken code (C++ only).
  --suggest-missing-includes      - Attempts to fix diagnostic errors caused by missing includes using index

clangd miscellaneous options:

  --enable-config                 - Read user and project configuration from YAML files.
                                    Project config is from a .clangd file in the project directory.
                                    User config is from clangd/config.yaml in the following directories:
                                    	Windows: %USERPROFILE%\AppData\Local
                                    	Mac OS: ~/Library/Preferences/
                                    	Others: $XDG_CONFIG_HOME, usually ~/.config
                                    Configuration is documented at https://clangd.llvm.org/config.html
  -j=<uint>                       - Number of async workers used by clangd. Background index also uses this many workers.
  --pch-storage=<value>           - Storing PCHs in memory increases memory usages, but may improve performance
    =disk                         -   store PCHs on disk
    =memory                       -   store PCHs in memory

clangd protocol and logging options:

  --log=<value>                   - Verbosity of log messages written to stderr
    =error                        -   Error messages only
    =info                         -   High level execution tracing
    =verbose                      -   Low level details
  --offset-encoding=<value>       - Force the offsetEncoding used for character positions. This bypasses negotiation via client capabilities
    =utf-8                        -   Offsets are in UTF-8 bytes
    =utf-16                       -   Offsets are in UTF-16 code units
    =utf-32                       -   Offsets are in unicode codepoints
  --path-mappings=<string>        - Translates between client paths (as seen by a remote editor) and server paths (where clangd sees files on disk). Comma separated list of '<client_path>=<server_path>' pairs, the first entry matching a given path is used. e.g. /home/project/incl=/opt/include,/home/project=/workarea/project
  --pretty                        - Pretty-print JSON output

libc++-dev

libc++ is another implementation of the C++ standard library

Features and Goals

  • Correctness as defined by the C++ standards.
  • Fast execution.
  • Minimal memory use.
  • Fast compile times.
  • ABI compatibility with gcc’s libstdc++ for some low-level features such as exception objects, rtti and memory allocation.
  • Extensive unit tests. This is a dependency package providing the default LLVM C++ Standard library development files.

Installed size: 15 KB
How to install: sudo apt install libc++-dev

  • libc++-11-dev

libc++1

libc++ is another implementation of the C++ standard library.

Features and Goals

  • Correctness as defined by the C++ standards.
  • Fast execution.
  • Minimal memory use.
  • Fast compile times.
  • ABI compatibility with gcc’s libstdc++ for some low-level features such as exception objects, rtti and memory allocation.
  • Extensive unit tests. This is a dependency package providing the default LLVM C++ Standard library.

Installed size: 15 KB
How to install: sudo apt install libc++1

  • libc++1-11

libc++abi-dev

libc++abi is another implementation of low level support for a standard C++ library.

Features and Goals

  • Correctness as defined by the C++ standards.
  • Provide a portable sublayer to ease the porting of libc++ This is the development package providing low level support to LLVM C++ Standard library.

Installed size: 15 KB
How to install: sudo apt install libc++abi-dev

  • libc++abi-11-dev

libc++abi1

libc++abi is another implementation of low level support for a standard C++ library.

Features and Goals

  • Correctness as defined by the C++ standards.
  • Provide a portable sublayer to ease the porting of libc++ This is a dependency package providing low level support to LLVM C++ Standard library.

Installed size: 15 KB
How to install: sudo apt install libc++abi1

  • libc++abi1-11

libclang-cpp-dev

Clang project is a C, C++, Objective C and Objective C++ front-end for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC).

Clang implements all of the ISO C++ 1998, 11 and 14 standards and also provides most of the support of C++17.

This is a dependency package providing the default Clang C++ library.

Installed size: 15 KB
How to install: sudo apt install libclang-cpp-dev

  • libclang-cpp11-dev

libclang-dev

Clang project is a C, C++, Objective C and Objective C++ front-end for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC).

Clang implements all of the ISO C++ 1998, 11 and 14 standards and also provides most of the support of C++17.

This is a dependency package providing the default libclang libraries and headers.

Installed size: 15 KB
How to install: sudo apt install libclang-dev

  • libclang-11-dev

libclang1

Clang project is a C, C++, Objective C and Objective C++ front-end for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler Collection (GCC).

Clang implements all of the ISO C++ 1998, 11 and 14 standards and also provides most of the support of C++17.

This is a dependency package providing the default clang libraries.

The C Interface to Clang provides a relatively small API that exposes facilities for parsing source code into an abstract syntax tree (AST), loading already-parsed ASTs, traversing the AST, associating physical source locations with elements within the AST, and other facilities that support Clang-based development tools.

Installed size: 15 KB
How to install: sudo apt install libclang1

  • libclang1-11

liblldb-dev

LLDB is a next generation, high-performance debugger. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project, such as the Clang expression parser and LLVM disassembler.

This package provides the header files to build extension over lldb.

Installed size: 19 KB
How to install: sudo apt install liblldb-dev

  • liblldb-11-dev

libllvm-ocaml-dev

The Low-Level Virtual Machine (LLVM) is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs.

This is a dependency package providing the default bindings for OCaml.

Installed size: 20 KB
How to install: sudo apt install libllvm-ocaml-dev

  • libllvm-11-ocaml-dev
  • llvm-runtime

libomp-dev

The runtime is the part of the OpenMP implementation that your code is linked against, and that manages the multiple threads in an OpenMP program while it is executing. This is a dependency package providing the default LLVM OpenMP dev package.

Installed size: 15 KB
How to install: sudo apt install libomp-dev

  • libomp-11-dev

libomp5

The runtime is the part of the OpenMP implementation that your code is linked against, and that manages the multiple threads in an OpenMP program while it is executing. This is a dependency package providing the default LLVM OpenMP runtime.

Installed size: 15 KB
How to install: sudo apt install libomp5

  • libomp5-11

lld

LLD is a new, high-performance linker. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project.

Installed size: 23 KB
How to install: sudo apt install lld

  • lld-11
ld.lld

ELF linker from the LLVM project

root@kali:~# ld.lld --help
OVERVIEW: lld

USAGE: ld.lld [options] file...

OPTIONS:
  -(                      Alias for --start-group
  -)                      Alias for --end-group
  --allow-multiple-definition
                          Allow multiple definitions
  --allow-shlib-undefined Allow unresolved references in shared libraries (default when linking a shared library)
  --apply-dynamic-relocs  Apply link-time values for dynamic relocations
  --as-needed             Only set DT_NEEDED for shared libraries if used
  --auxiliary=<value>     Set DT_AUXILIARY field to the specified name
  --Bdynamic              Link against shared libraries (default)
  --Bshareable            Alias for --shared
  --Bstatic               Do not link against shared libraries
  --Bsymbolic-functions   Bind defined function symbols locally
  --Bsymbolic             Bind defined symbols locally
  --build-id=[fast,md5,sha1,uuid,0x<hexstring>]
                          Generate build ID note
  --build-id              Alias for --build-id=fast
  -b <value>              Alias for --format
  --call-graph-ordering-file=<value>
                          Layout sections to optimize the given callgraph
  --call-graph-profile-sort
                          Reorder sections with call graph profile (default)
  --call_shared           Alias for --Bdynamic
  --check-sections        Check section addresses for overlaps (default)
  --color-diagnostics=[auto,always,never]
                          Use colors in diagnostics
  --color-diagnostics     Alias for --color-diagnostics=always
  --compress-debug-sections=[none,zlib]
                          Compress DWARF debug sections
  --cref                  Output cross reference table
  --dc                    Alias for --define-common
  --define-common         Assign space to common symbols
  --defsym=<symbol>=<value>
                          Define a symbol alias
  --demangle              Demangle symbol names (default)
  --dependent-libraries   Process dependent library specifiers from input files (default)
  --disable-new-dtags     Disable new dynamic tags
  --discard-all           Delete all local symbols
  --discard-locals        Delete temporary local symbols
  --discard-none          Keep all symbols in the symbol table
  --dn                    Alias for --Bstatic
  --dp                    Alias for --define-common
  --dynamic-linker=<value>
                          Which dynamic linker to use
  --dynamic-list=<file>   Read a list of dynamic symbols. (executable) Put matched non-local definedsymbols to the dynamic symbol table. (shared object) References to matchednon-local STV_DEFAULT symbols shouldn't be bound to definitions within the shared object. Implies -Bsymbolic but does not set DF_SYMBOLIC
  --dy                    Alias for --Bdynamic
  -d                      Alias for --define-common
  --eh-frame-hdr          Request creation of .eh_frame_hdr section and PT_GNU_EH_FRAME segment header
  --emit-relocs           Generate relocations in output
  --enable-new-dtags      Enable new dynamic tags (default)
  --end-group             Ignored for compatibility with GNU unless you pass --warn-backrefs
  --end-lib               End a grouping of objects that should be treated as if they were together in an archive
  --entry=<entry>         Name of entry point symbol
  --error-limit=<value>   Maximum number of errors to emit before stopping (0 = no limit)
  --error-unresolved-symbols
                          Report unresolved symbols as errors
  --exclude-libs=<value>  Exclude static libraries from automatic export
  --execute-only          Mark executable sections unreadable
  --export-dynamic-symbol=glob
                          (executable) Put matched symbols in the dynamic symbol table. (shared object) References to matched non-local STV_DEFAULT symbols shouldn't be bound to definitions within the shared object. Does not imply -Bsymbolic.
  --export-dynamic        Put symbols in the dynamic symbol table
  -E                      Alias for --export-dynamic
  -e <value>              Alias for --entry
  --fatal-warnings        Treat warnings as errors
  --filter=<value>        Set DT_FILTER field to the specified name
  --fini=<symbol>         Specify a finalizer function
  --fix-cortex-a53-843419 Apply fixes for AArch64 Cortex-A53 erratum 843419
  --fix-cortex-a8         Apply fixes for ARM Cortex-A8 erratum 657417
  --format=[default,elf,binary]
                          Change the input format of the inputs following this option
  -F <value>              Alias for --filter
  -f <value>              Alias for --auxiliary
  --gc-sections           Enable garbage collection of unused sections
  --gdb-index             Generate .gdb_index section
  --gnu-unique            Enable STB_GNU_UNIQUE symbol binding (default)
  --hash-style=<value>    Specify hash style (sysv, gnu or both)
  --help                  Print option help
  -h <value>              Alias for --soname
  --icf=all               Enable identical code folding
  --icf=none              Disable identical code folding (default)
  --icf=safe              Enable safe identical code folding
  --ignore-data-address-equality
                          lld can break the address equality of data
  --ignore-function-address-equality
                          lld can break the address equality of functions
  --image-base=<value>    Set the base address
  --init=<symbol>         Specify an initializer function
  --just-symbols=<value>  Just link symbols
  --keep-unique=<value>   Do not fold this symbol during ICF
  --library-path=<dir>    Add a directory to the library search path
  --library=<libName>     Root name of library to use
  --lto-aa-pipeline=<value>
                          AA pipeline to run during LTO. Used in conjunction with -lto-newpm-passes
  --lto-basicblock-sections=<value>
                          Enable basic block sections for LTO
  --lto-cs-profile-file=<value>
                          Context sensitive profile file path
  --lto-cs-profile-generate
                          Perform context sensitive PGO instrumentation
  --lto-debug-pass-manager
                          Debug new pass manager
  --lto-emit-asm          Emit assembly code
  --lto-new-pass-manager  Use new pass manager
  --lto-newpm-passes=<value>
                          Passes to run during LTO
  --lto-O<opt-level>      Optimization level for LTO
  --lto-partitions=<value>
                          Number of LTO codegen partitions
  --lto-sample-profile=<value>
                          Sample profile file path
  --lto-unique-bb-section-names
                          Give unique names to every basic block section for LTO
  --lto-whole-program-visibility
                          Asserts that the LTO link has whole program visibility
  -L <value>              Alias for --library-path
  -l <value>              Alias for --library
  --Map=<value>           Print a link map to the specified file
  --merge-exidx-entries   Enable merging .ARM.exidx entries (default)
  --mllvm=<value>         Additional arguments to forward to LLVM's option processing
  --mmap-output-file      Mmap the output file for writing (default)
  -M                      Alias for --print-map
  -m <value>              Set target emulation
  --nmagic                Do not page align sections, link against static libraries.
  --no-allow-multiple-definition
                          Do not allow multiple definitions (default)
  --no-allow-shlib-undefined
                          Do not allow unresolved references in shared libraries (default when linking an executable)
  --no-apply-dynamic-relocs
                          Do not apply link-time values for dynamic relocations (default)
  --no-as-needed          Always set DT_NEEDED for shared libraries (default)
  --no-call-graph-profile-sort
                          Do not reorder sections with call graph profile
  --no-check-sections     Do not check section addresses for overlaps
  --no-color-diagnostics  Do not use colors in diagnostics
  --no-cref               Do not output cross reference table
  --no-define-common      Do not assign space to common symbols
  --no-demangle           Do not demangle symbol names
  --no-dependent-libraries
                          Ignore dependent library specifiers from input files
  --no-dynamic-linker     Inhibit output of .interp section
  --no-eh-frame-hdr       Do not create .eh_frame_hdr section
  --no-execute-only       Mark executable sections readable (default)
  --no-export-dynamic     Do not put symbols in the dynamic symbol table (default)
  --no-fatal-warnings     Do not treat warnings as errors (default)
  --no-gc-sections        Disable garbage collection of unused sections (default)
  --no-gdb-index          Do not generate .gdb_index section (default)
  --no-gnu-unique         Disable STB_GNU_UNIQUE symbol binding
  --no-lto-unique-bb-section-names
                          Do not give unique names to every basic block section for LTO (default)
  --no-merge-exidx-entries
                          Disable merging .ARM.exidx entries
  --no-mmap-output-file   Do not mmap the output file for writing
  --no-nmagic             Page align sections (default)
  --no-omagic             Do not set the text data sections to be writable, page align sections (default)
  --no-optimize-bb-jumps  Do not remove any direct jumps at the end to the next basic block (default)
  --no-pic-executable     Alias for --no-pie
  --no-pie                Do not create a position independent executable (default)
  --no-print-gc-sections  Do not list removed unused sections (default)
  --no-print-icf-sections Do not list identical folded sections (default)
  --no-rosegment          Do not put read-only non-executable sections in their own segment
  --no-toc-optimize       (PowerPC64) Disable TOC related optimizations
  --no-undefined-version  Report version scripts that refer undefined symbols
  --no-undefined          Report unresolved symbols even if the linker is creating a shared library
  --no-use-android-relr-tags
                          Use SHT_RELR / DT_RELR* tags (default)
  --no-warn-backrefs      Do not warn about backward symbol references to fetch archive members (default)
  --no-warn-common        Do not warn about duplicate common symbols (default)
  --no-warn-ifunc-textrel Do not warn about using ifunc symbols with text relocations (default)
  --no-warn-symbol-ordering
                          Do not warn about problems with the symbol ordering file
  --no-whole-archive      Do not force load of all members in a static library (default)
  --noinhibit-exec        Retain the executable output file whenever it is still usable
  --non_shared            Alias for --Bstatic
  --nostdlib              Only search directories specified on the command line
  -N                      Alias for --omagic
  -n                      Alias for --nmagic
  --oformat <format>      Specify the binary format for the output object file
  --omagic                Set the text and data sections to be readable and writable, do not page align sections, link against static libraries
  --opt-remarks-filename <value>
                          YAML output file for optimization remarks
  --opt-remarks-format <value>
                          The format used for serializing remarks (default: YAML)
  --opt-remarks-passes <value>
                          Regex for the passes that need to be serialized to the output file
  --opt-remarks-with-hotness
                          Include hotness information in the optimization remarks file
  --optimize-bb-jumps     Remove direct jumps at the end to the next basic block
  --orphan-handling=<value>
                          Control how orphan sections are handled when linker script used
  --output=<value>        Alias for -o
  --output <value>        Alias for -o
  -O <value>              Optimize output file size
  -o <path>               Path to file to write output
  --pack-dyn-relocs=[none,android,relr,android+relr]
                          Pack dynamic relocations in the given format
  --pic-executable        Alias for --pie
  --pic-veneer            Always generate position independent thunks (veneers)
  --pie                   Create a position independent executable
  --plugin-opt=-<value>   Specify an LLVM option for compatibility with LLVMgold.so
  --plugin-opt=cs-profile-generate
                          Alias for --lto-cs-profile-generate
  --plugin-opt=cs-profile-path=<value>
                          Alias for --lto-cs-profile-file
  --plugin-opt=debug-pass-manager
                          Alias for --lto-debug-pass-manager
  --plugin-opt=disable-verify
                          Alias for --disable-verify
  --plugin-opt=dwo_dir=<value>
                          Directory to store .dwo files when LTO and debug fission are used
  --plugin-opt=emit-asm   Alias for --lto-emit-asm
  --plugin-opt=jobs=<value>
                          Alias for --thinlto-jobs
  --plugin-opt=lto-partitions=<value>
                          Alias for --lto-partitions
  --plugin-opt=new-pass-manager
                          Alias for --lto-new-pass-manager
  --plugin-opt=obj-path=<value>
                          Alias for --lto-obj-path=
  --plugin-opt=O<value>   Alias for --lto-O
  --plugin-opt=sample-profile=<value>
                          Alias for --lto-sample-profile
  --plugin-opt=save-temps Alias for --save-temps
  --plugin-opt=thinlto-emit-imports-files
                          Alias for --thinlto-emit-imports-files
  --plugin-opt=thinlto-index-only=<value>
                          Alias for --thinlto-index-only=
  --plugin-opt=thinlto-index-only
                          Alias for --thinlto-index-only
  --plugin-opt=thinlto-object-suffix-replace=<value>
                          Alias for --thinlto-object-suffix-replace=
  --plugin-opt=thinlto-prefix-replace=<value>
                          Alias for --thinlto-prefix-replace=
  --plugin=<value>        Ignored for compatibility with GNU linkers
  --pop-state             Undo the effect of -push-state
  --print-archive-stats=<value>
                          Write archive usage statistics to the specified file. Print the numbers of members and fetched members for each archive
  --print-gc-sections     List removed unused sections
  --print-icf-sections    List identical folded sections
  --print-map             Print a link map to the standard output
  --print-symbol-order=<value>
                          Print a symbol order specified by --call-graph-ordering-file into the specified file
  --push-state            Save the current state of -as-needed, -static and -whole-archive
  -q                      Alias for --emit-relocs
  --relocatable           Create relocatable object file
  --reproduce=<value>     Write a tar file containing input files and command line options to reproduce link
  --retain-symbols-file=<file>
                          Retain only the symbols listed in the file
  --rosegment             Put read-only non-executable sections in their own segment (default)
  --rpath=<value>         Add a DT_RUNPATH to the output
  --rsp-quoting=[posix,windows]
                          Quoting style for response files
  -R <value>              Alias for --rpath
  -r                      Alias for --relocatable
  --script=<value>        Read linker script
  --section-start=<address>
                          Set address of section
  --shared                Build a shared object
  --shuffle-sections=<seed>
                          Shuffle input sections using the given seed. If 0, use a random seed
  --soname=<value>        Set DT_SONAME
  --sort-section=<value>  Specifies sections sorting rule when linkerscript is used
  --split-stack-adjust-size=<value>
                          Specify adjustment to stack size when a split-stack function calls a non-split-stack function
  --start-group           Ignored for compatibility with GNU unless you pass --warn-backrefs
  --start-lib             Start a grouping of objects that should be treated as if they were together in an archive
  --static                Alias for --Bstatic
  --strip-all             Strip all symbols
  --strip-debug           Strip debugging information
  --symbol-ordering-file=<value>
                          Layout sections to place symbols in the order specified by symbol ordering file
  --sysroot=<value>       Set the system root
  -S                      Alias for --strip-debug
  -s                      Alias for --strip-all
  --target1-abs           Interpret R_ARM_TARGET1 as R_ARM_ABS32 (default)
  --target1-rel           Interpret R_ARM_TARGET1 as R_ARM_REL32
  --target2=<type>        Interpret R_ARM_TARGET2 as <type>, where <type> is one of rel, abs, or got-rel
  --Tbss=<value>          Same as --section-start with .bss as the sectionname
  --Tdata=<value>         Same as --section-start with .data as the sectionname
  --thinlto-cache-dir=<value>
                          Path to ThinLTO cached object file directory
  --thinlto-cache-policy=<value>
                          Pruning policy for the ThinLTO cache
  --thinlto-jobs=<value>  Number of ThinLTO jobs. Default to --threads=
  --thinlto-single-module=<value>
                          Specific a single module to compile in ThinLTO mode, for debugging only
  --threads=<value>       Number of threads. '1' disables multi-threading. By default all available hardware threads are used
  --time-trace-file=<value>
                          Specify time trace output file
  --time-trace-granularity=<value>
                          Minimum time granularity (in microseconds) traced by time profiler
  --time-trace            Record time trace
  --toc-optimize          (PowerPC64) Enable TOC related optimizations (default)
  --trace-symbol=<value>  Trace references to symbols
  --trace                 Print the names of the input files
  --Ttext=<value>         Same as --section-start with .text as the sectionname
  -T <value>              Alias for --script
  -t                      Alias for --trace
  --undefined-glob=<pattern>
                          Force undefined symbol during linking
  --undefined-version     Allow unused version in version script (default)
  --undefined=<symbol>    Force undefined symbol during linking
  --unique                Creates a separate output section for every orphan input section
  --unresolved-symbols=<value>
                          Determine how to handle unresolved symbols
  --use-android-relr-tags Use SHT_ANDROID_RELR / DT_ANDROID_RELR* tags instead of SHT_RELR / DT_RELR*
  -u <value>              Alias for --undefined
  --verbose               Verbose mode
  --version-script=<value>
                          Read a version script
  --version               Display the version number and exit
  --vs-diagnostics        Format diagnostics for Visual Studio compatibility
  -V                      Alias for --version
  -v                      Display the version number
  --warn-backrefs-exclude=<glob>
                          Glob describing an archive (or an object file within --start-lib) which should be ignored for --warn-backrefs.
  --warn-backrefs         Warn about backward symbol references to fetch archive members
  --warn-common           Warn about duplicate common symbols
  --warn-ifunc-textrel    Warn about using ifunc symbols with text relocations
  --warn-symbol-ordering  Warn about problems with the symbol ordering file (default)
  --warn-unresolved-symbols
                          Report unresolved symbols as warnings
  --whole-archive         Force load of all members in a static library
  --wrap=<symbol>=<symbol>
                          Use wrapper functions for symbol
  -X                      Alias for --discard-locals
  -x                      Alias for --discard-all
  -y <value>              Alias for --trace-symbol
  -z <option>             Linker option extensions

ld.lld: supported targets: elf

lld

ELF linker from the LLVM project

root@kali:~# man lld
LD.LLD(1)                 BSD General Commands Manual                LD.LLD(1)

NAME
     ld.lld -- ELF linker from the LLVM project

SYNOPSIS
     ld.lld [options] objfile ...

DESCRIPTION
     A linker takes one or more object, archive, and library files, and com-
     bines them into an output file (an executable, a shared library, or an-
     other object file).  It relocates code and data from the input files and
     resolves symbol references between them.

     ld.lld is a drop-in replacement for the GNU BFD and gold linkers.  It ac-
     cepts most of the same command line arguments and linker scripts as GNU
     linkers.

     ld.lld currently supports i386, x86-64, ARM, AArch64, PowerPC32, Pow-
     erPC64, MIPS32, MIPS64, RISC-V, AMDGPU, Hexagon and SPARC V9 targets.
     ld.lld acts as a Microsoft link.exe-compatible linker if invoked as
     lld-link and as macOS's ld if invoked as ld.ld64. All these targets are
     always supported however ld.lld was built, so you can always use ld.lld
     as a native linker as well as a cross linker.

OPTIONS
     Many options have both a single-letter and long form.  When using the
     long form options other than those beginning with the letter o may be
     specified using either one or two dashes preceding the option name.  Long
     options beginning with o require two dashes to avoid confusion with the
     -o path option.

     --allow-multiple-definition
             Do not error if a symbol is defined multiple times.  The first
             definition will be used.

     --allow-shlib-undefined
             Allow unresolved references in shared libraries.  This option is
             enabled by default when linking a shared library.

     --apply-dynamic-relocs
             Apply link-time values for dynamic relocations.

     --as-needed
             Only set DT_NEEDED for shared libraries if used.

     --auxiliary=value
             Set the DT_AUXILIARY field to the specified name.

     --Bdynamic, --dy
             Link against shared libraries.

     --Bstatic, --static, --dn
             Do not link against shared libraries.

     --Bsymbolic
             Bind defined symbols locally.

     --Bsymbolic-functions
             Bind defined function symbols locally.

     --build-id=value
             Generate a build ID note.  value may be one of fast, md5, sha1,
             tree, uuid, 0xhex-string, and none.  tree is an alias for sha1.
             Build-IDs of type fast, md5, sha1, and tree are calculated from
             the object contents.  fast is not intended to be cryptographi-
             cally secure.

     --build-id
             Synonym for --build-id=fast.

     --color-diagnostics=value
             Use colors in diagnostics.  value may be one of always, auto, and
             never.  auto enables color if and only if output is to a termi-
             nal.

     --color-diagnostics
             Alias for --color-diagnostics=auto.

     --compress-debug-sections=value
             Compress DWARF debug sections.  value may be none or zlib.  The
             default compression level is 1 (fastest) as the debug info usu-
             ally compresses well at that level, but if you want to compress
             it more, you can specify -O2 to set the compression level to 6.

     --cref  Output cross reference table.

     --define-common, -d
             Assign space to common symbols.

     --defsym=symbol=expression
             Define a symbol alias.  expression may be another symbol or a
             linker script expression.  For example, '--defsym=foo=bar' or
             '--defsym=foo=bar+0x100'.

     --demangle
             Demangle symbol names.

     --disable-new-dtags
             Disable new dynamic tags.

     --discard-all, -x
             Delete all local symbols.

     --discard-locals, -X
             Delete temporary local symbols.

     --discard-none
             Keep all symbols in the symbol table.

     --dynamic-linker=value
             Specify the dynamic linker to be used for a dynamically linked
             executable.  This is recorded in an ELF segment of type
             PT_INTERP.

     --dynamic-list=file
             Read a list of dynamic symbols from file.  (executable) Put
             matched non-local defined symbols to the dynamic symbol table.
             (shared object) References to matched non-local STV_DEFAULT sym-
             bols shouldn't be bound to definitions within the shared object.
             Implies -Bsymbolic but does not set DF_SYMBOLIC

     --eh-frame-hdr
             Request creation of .eh_frame_hdr section and PT_GNU_EH_FRAME
             segment header.

     --emit-relocs, -q
             Generate relocations in the output.

     --enable-new-dtags
             Enable new dynamic tags.

     --end-lib
             End a grouping of objects that should be treated as if they were
             together in an archive.

     --entry=entry
             Name of entry point symbol.

     --error-limit=value
             Maximum number of errors to emit before stopping.  A value of
             zero indicates that there is no limit.

     --error-unresolved-symbols
             Report unresolved symbols as errors.

     --execute-only
             Mark executable sections unreadable.  This option is currently
             only supported on AArch64.

     --exclude-libs=value
             Exclude static libraries from automatic export.

     --export-dynamic, -E
             Put symbols in the dynamic symbol table.

     --export-dynamic-symbol=glob
             (executable) Put matched non-local defined symbols to the dynamic
             symbol table.  (shared object) References to matched non-local
             STV_DEFAULT symbols shouldn't be bound to definitions within the
             shared object even if they would otherwise be due to -Bsymbolic ,
             -Bsymbolic-functions or --dynamic-list

     --fatal-warnings
             Treat warnings as errors.

     --filter=value, -F value
             Set the DT_FILTER field to the specified value.

     --fini=symbol
             Specify a finalizer function.

     --format=input-format, -b input-format
             Specify the format of the inputs following this option.
             input-format may be one of binary, elf, and default.  default is
             a synonym for elf.

     --gc-sections
             Enable garbage collection of unused sections.

     --gdb-index
             Generate .gdb_index section.

     --hash-style=value
             Specify hash style.  value may be sysv, gnu, or both.  both is
             the default.

     --help  Print a help message.

     --icf=all
             Enable identical code folding.

     --icf=safe
             Enable safe identical code folding.

     --icf=none
             Disable identical code folding.

     --ignore-data-address-equality
             Ignore address equality of data. C/C++ requires each data to have
             a unique address.  This option allows lld to do unsafe optimiza-
             tion that breaks the requirement: create copies of read-only data
             or merge two or more read-only data that happen to have the same
             value.

     --ignore-function-address-equality
             Ignore address equality of functions.  This option allows non-PIC
             calls to a function with non-default visibility in a shared ob-
             ject.  The function may have different addresses within the exe-
             cutable and within the shared object.

     --image-base=value
             Set the base address to value.

     --init=symbol
             Specify an initializer function.

     --keep-unique=symbol
             Do not fold symbol during ICF.

     -l libName, --library=libName
             Root name of library to use.

     -L dir, --library-path=dir
             Add a directory to the library search path.

     --lto-aa-pipeline=value
             AA pipeline to run during LTO.  Used in conjunction with
             --lto-newpm-passes.

     --lto-newpm-passes=value
             Passes to run during LTO.

     --lto-Oopt-level
             Optimization level for LTO.

     --lto-partitions=value
             Number of LTO codegen partitions.

     -m value
             Set target emulation.

     --Map=file, -M file
             Print a link map to file.

     --nmagic, -n
             Do not page align sections, link against static libraries.

     --no-allow-shlib-undefined
             Do not allow unresolved references in shared libraries.  This op-
             tion is enabled by default when linking an executable.

     --no-as-needed
             Always set DT_NEEDED for shared libraries.

     --no-color-diagnostics
             Do not use colors in diagnostics.

     --no-define-common
             Do not assign space to common symbols.

     --no-demangle
             Do not demangle symbol names.

     --no-dynamic-linker
             Inhibit output of an .interp section.

     --no-gc-sections
             Disable garbage collection of unused sections.

     --no-gnu-unique
             Disable STB_GNU_UNIQUE symbol binding.

     --no-merge-exidx-entries
             Disable merging .ARM.exidx entries.

     --no-nmagic
             Page align sections.

     --no-omagic
             Do not set the text data sections to be writable, page align sec-
             tions.

     --no-relax
             Disable target-specific relaxations. This is currently a no-op.

     --no-rosegment
             Do not put read-only non-executable sections in their own seg-
             ment.

     --no-undefined-version
             Report version scripts that refer undefined symbols.

     --no-undefined
             Report unresolved symbols even if the linker is creating a shared
             library.

     --no-warn-symbol-ordering
             Do not warn about problems with the symbol ordering file or call
             graph profile.

     --no-whole-archive
             Restores the default behavior of loading archive members.

     --no-pie, --no-pic-executable
             Do not create a position independent executable.

     --noinhibit-exec
             Retain the executable output file whenever it is still usable.

     --nostdlib
             Only search directories specified on the command line.

     -o path
             Write the output executable, library, or object to path.  If not
             specified, a.out is used as a default.

     -Ovalue
             Optimize output file size.  value may be:

             0   Disable string merging.
             1   Enable string merging.
             2   Enable string tail merging. If --compress-debug-sections is
                 given, compress debug sections at compression level 6 instead
                 of 1.

             -O1 is the default.

     --oformat=format
             Specify the format for the output object file.  The only sup-
             ported format is binary, which produces output with no ELF
             header.

     --omagic, -N
             Set the text and data sections to be readable and writable, do
             not page align sections, link against static libraries.

     --opt-remarks-filename file
             Write optimization remarks in YAML format to file.

     --opt-remarks-passes pass-regex
             Filter optimization remarks by only allowing the passes matching
             pass-regex.

     --opt-remarks-with-hotness
             Include hotness information in the optimization remarks file.

     --orphan-handling=mode
             Control how orphan sections are handled.  An orphan section is
             one not specifically mentioned in a linker script.  mode may be:

             place
                 Place orphan sections in suitable output sections.
             warn
                 Place orphan sections as for place and also report a warning.
             error
                 Place orphan sections as for place and also report an error.

             place is the default.

     --pack-dyn-relocs=format
             Pack dynamic relocations in the given format.  format may be:

             none
                 Do not pack.  Dynamic relocations are encoded in SHT_REL(A).
             android
                 Pack dynamic relocations in SHT_ANDROID_REL(A).
             relr
                 Pack relative relocations in SHT_RELR, and the rest of dy-
                 namic relocations in SHT_REL(A).
             android+relr
                 Pack relative relocations in SHT_RELR, and the rest of dy-
                 namic relocations in SHT_ANDROID_REL(A).

             none is the default.  If --use-android-relr-tags is specified,
             use SHT_ANDROID_RELR instead of SHT_RELR.

     --pic-veneer
             Always generate position independent thunks.

     --pie, --pic-executable
             Create a position independent executable.

     --print-gc-sections
             List removed unused sections.

     --print-icf-sections
             List identical folded sections.

     --print-map
             Print a link map to the standard output.

     --print-archive-stats=file
             Write archive usage statistics to the specified file.  Print the
             numbers of members and fetched members for each archive.

     --push-state
             Save the current state of --as-needed, --static, and
             --whole-archive.

     --pop-state
             Undo the effect of --push-state.

     --relocatable, -r
             Create relocatable object file.

     --reproduce=path
             Write a tar file to path, containing all the input files needed
             to reproduce the link, a text file called response.txt containing
             the command line options and a text file called version.txt con-
             taining the output of ld.lld --version.  The archive when un-
             packed can be used to re-run the linker with the same options and
             input files.

     --retain-symbols-file=file
             Retain only the symbols listed in the file.

     --rpath=value, -R value
             Add a DT_RUNPATH to the output.

     --rsp-quoting=value
             Quoting style for response files.  The supported values are
             windows and posix.

     --script=file, -T file
             Read linker script from file.  If multiple linker scripts are
             given, they are processed as if they were concatenated in the or-
             der they appeared on the command line.

     --section-start=section=address
             Set address of section.

     --shared, --Bsharable
             Build a shared object.

     --shuffle-sections=seed
             Shuffle input sections using the given seed. If 0, use a random
             seed.

     --soname=value, -h value
             Set DT_SONAME to value.

     --sort-common
             This option is ignored for GNU compatibility.

     --sort-section=value
             Specifies sections sorting rule when linkerscript is used.

     --start-lib
             Start a grouping of objects that should be treated as if they
             were together in an archive.

     --strip-all, -s
             Strip all symbols.

     --strip-debug, -S
             Strip debugging information.

     --symbol-ordering-file=file
             Lay out sections in the order specified by file.

     --sysroot=value
             Set the system root.

     --target1-abs
             Interpret R_ARM_TARGET1 as R_ARM_ABS32.

     --target1-rel
             Interpret R_ARM_TARGET1 as R_ARM_REL32.

     --target2=type
             Interpret R_ARM_TARGET2 as type, where type is one of rel, abs,
             or got-rel.

     --Tbss=value
             Same as --section-start with .bss as the sectionname.

     --Tdata=value
             Same as --section-start with .data as the sectionname.

     --Ttext=value
             Same as --section-start with .text as the sectionname.

     --thinlto-cache-dir=value
             Path to ThinLTO cached object file directory.

     --thinlto-cache-policy=value
             Pruning policy for the ThinLTO cache.

     --thinlto-jobs=value
             Number of ThinLTO jobs.

     --threads=N
             Number of threads.  all (default) means all of concurrent threads
             supported.  1 disables multi-threading.

     --time-trace
             Record time trace.

     --time-trace-file=file
             Write time trace output to file.

     --time-trace-granularity=value
             Minimum time granularity (in microseconds) traced by time pro-
             filer.

     --trace
             Print the names of the input files.

     --trace-symbol=symbol, -y symbol
             Trace references to symbol.

     --undefined=symbol, -u symbol
             If symbol is not defined after symbol resolution, and there's a
             static library that contains an object file defining the symbol,
             load the member to include the object file in the output file.

     --undefined-glob=pattern
             Synonym for --undefined, except that it takes a glob pattern.  In
             a glob pattern, * matches zero or more characters, ?  matches any
             single character, and [...] matches the characters within brack-
             ets.  All symbols that match a given pattern are handled as if
             they were given as arguments of --undefined.

     --unique
             Creates a separate output section for every orphan input section.

     --unresolved-symbols=value
             Determine how to handle unresolved symbols.

     --use-android-relr-tags
             Use SHT_ANDROID_RELR / DT_ANDROID_RELR* tags instead of SHT_RELR
             / DT_RELR*.

     -v      Display the version number and proceed with linking if object
             files are specified.

     -V, --version
             Display the version number and exit.

     --verbose
             Verbose mode.

     --version-script=file
             Read version script from file.

     --warn-backrefs
             Warn about reverse or cyclic dependencies to or between static
             archives.  This can be used to ensure linker invocation remains
             compatible with traditional Unix-like linkers.

     --warn-backrefs-exclude=glob
             Glob describing an archive (or an object file within --start-lib)
             which should be ignored for --warn-backrefs

     --warn-common
             Warn about duplicate common symbols.

     --warn-ifunc-textrel
             Warn about using ifunc symbols in conjunction with text reloca-
             tions.  Older versions of glibc library (2.28 and earlier) has a
             bug that causes the segment that includes ifunc symbols to be
             marked as not executable when they are relocated.  As a result,
             although the program compiles and links successfully, it gives
             segmentation fault when the instruction pointer reaches an ifunc
             symbol.  Use -warn-ifunc-textrel to let lld give a warning, if
             the code may include ifunc symbols, may do text relocations and
             be linked with an older glibc version.  Otherwise, there is no
             need to use it, as the default value does not give a warning.
             This flag has been introduced in late 2018, has no counter part
             in ld and gold linkers, and may be removed in the future.

     --warn-unresolved-symbols
             Report unresolved symbols as warnings.

     --whole-archive
             Force load of all members in a static library.

     --wrap=symbol
             Use wrapper functions for symbol.

     -z option
             Linker option extensions.

             dead-reloc-in-nonalloc=section_glob=value
                     Resolve a relocation in a matched non-SHF_ALLOC section
                     referencing a discarded symbol to value Accepts globs, in
                     the event of a section matching more than one option, the
                     last option takes precedence. An order of least specific
                     to most specific match is recommended.

             execstack
                     Make the main stack executable.  Stack permissions are
                     recorded in the PT_GNU_STACK segment.

             force-bti
                     Force enable AArch64 BTI instruction in PLT, warn if In-
                     put ELF file does not have GNU_PROPERTY_AARCH64_FEA-
                     TURE_1_BTI property.

             force-ibt
                     Force enable Intel Indirect Branch Tracking in PLT, warn
                     if an input ELF file does not have GNU_PROPERTY_X86_FEA-
                     TURE_1_IBT property.

             global  Sets the DF_1_GLOBAL flag in the DYNAMIC section.  Dif-
                     ferent loaders can decide how to handle this flag on
                     their own.

             ifunc-noplt
                     Do not emit PLT entries for ifunc symbols.  Instead, emit
                     text relocations referencing the resolver.  This is an
                     experimental optimization and only suitable for stand-
                     alone environments where text relocations do not have the
                     usual drawbacks.  This option must be combined with the
                     -z notext option.

             initfirst
                     Sets the DF_1_INITFIRST flag to indicate the module
                     should be initialized first.

             interpose
                     Set the DF_1_INTERPOSE flag to indicate to the runtime
                     linker that the object is an interposer.  During symbol
                     resolution interposers are searched after the application
                     but before other dependencies.

             muldefs
                     Do not error if a symbol is defined multiple times.  The
                     first definition will be used.  This is a synonym for
                     --allow-multiple-definition.

             nocombreloc
                     Disable combining and sorting multiple relocation sec-
                     tions.

             nocopyreloc
                     Disable the creation of copy relocations.

             nodefaultlib
                     Set the DF_1_NODEFLIB flag to indicate that default li-
                     brary search paths should be ignored.

             nodelete
                     Set the DF_1_NODELETE flag to indicate that the object
                     cannot be unloaded from a process.

             nodlopen
                     Set the DF_1_NOOPEN flag to indicate that the object may
                     not be opened by dlopen(3).

             nognustack
                     Do not emit the PT_GNU_STACK segment.

             norelro
                     Do not indicate that portions of the object should be
                     mapped read-only after initial relocation processing.
                     The object will omit the PT_GNU_RELRO segment.

             notext  Allow relocations against read-only segments.  Sets the
                     DT_TEXTREL flag in the DYNAMIC section.

             now     Set the DF_BIND_NOW flag to indicate that the run-time
                     loader should perform all relocation processing as part
                     of object initialization.  By default relocations may be
                     performed on demand.

             origin  Set the DF_ORIGIN flag to indicate that the object re-
                     quires $ORIGIN processing.

             pac-plt
                     AArch64 only, use pointer authentication in PLT.

             rel     Use REL format for dynamic relocations.

             rela    Use RELA format for dynamic relocations.

             retpolineplt
                     Emit retpoline format PLT entries as a mitigation for
                     CVE-2017-5715.

             rodynamic
                     Make the .dynamic section read-only.  The DT_DEBUG tag
                     will not be emitted.

             separate-loadable-segments
             separate-code
             noseparate-code
                     Specify whether two adjacent PT_LOAD segments are allowed
                     to overlap in pages.  noseparate-code (default) allows
                     overlap.  separate-code allows overlap between two exe-
                     cutable segments, or two non-executable segments.
                     separate-loadable-segments disallows overlap.

             shstk   x86 only, use shadow stack.

             stack-size=size
                     Set the main thread's stack size to size.  The stack size
                     is recorded as the size of the size.  PT_GNU_STACK pro-
                     gram segment.

             text    Do not allow relocations against read-only segments.
                     This is the default.

             wxneeded
                     Create a PT_OPENBSD_WXNEEDED segment.

IMPLEMENTATION NOTES
     ld.lld's handing of archive files (those with a .a file extension) is
     different from traditional linkers used on Unix-like systems.

     Traditional linkers maintain a set of undefined symbols during linking.
     The linker processes each file in the order in which it appears on the
     command line, until the set of undefined symbols becomes empty.  An ob-
     ject file is linked into the output object when it is encountered, with
     its undefined symbols added to the set.  Upon encountering an archive
     file a traditional linker searches the objects contained therein, and
     processes those that satisfy symbols in the unresolved set.

     Handling mutually dependent archives may be awkward when using a tradi-
     tional linker.  Archive files may have to be specified multiple times, or
     the special command line options --start-group and --end-group may be
     used to have the linker loop over the files in the group until no new
     symbols are added to the set.

     ld.lld records all symbols found in objects and archives as it iterates
     over command line arguments.  When ld.lld encounters an undefined symbol
     that can be resolved by an object file contained in a previously pro-
     cessed archive file, it immediately extracts and links it into the output
     object.

     With certain archive inputs ld.lld may produce different results compared
     to traditional linkers.  In practice, large bodies of third party soft-
     ware have been linked with ld.lld without material issues.

     The --warn-backrefs option may be used to identify a linker invocation
     that may be incompatible with traditional Unix-like linker behavior.

BSD                              May 12, 2019                              BSD

wasm-ld
root@kali:~# wasm-ld --help
OVERVIEW: LLVM Linker

USAGE: wasm-ld [options] file...

OPTIONS:
  --allow-undefined-file=<value>
                         Allow symbols listed in <file> to be undefined in linked binary
  --allow-undefined      Allow undefined symbols in linked binary
  --check-features       Check feature compatibility of linked objects (default)
  --color-diagnostics=<value>
                         Use colors in diagnostics; one of 'always', 'never', 'auto'
  --color-diagnostics    Use colors in diagnostics
  --compress-relocations Compress the relocation targets in the code section.
  --demangle             Demangle symbol names
  --emit-relocs          Generate relocations in output
  --entry <entry>        Name of entry point symbol
  --error-limit=<value>  Maximum number of errors to emit before stopping (0 = no limit)
  --experimental-pic     Enable Experimental PIC
  --export-all           Export all symbols (normally combined with --no-gc-sections)
  --export-dynamic       Put symbols in the dynamic symbol table
  --export-table         Export function table to the environment
  --export=<value>       Force a symbol to be exported
  -E                     Alias for --export-dynamic
  --fatal-warnings       Treat warnings as errors
  --features=<value>     Comma-separated used features, inferred from input objects by default.
  --gc-sections          Enable garbage collection of unused sections
  --global-base=<value>  Where to start to place global data
  --growable-table       Remove maximum size from function table, allowing table to grow
  --help                 Print option help
  --import-memory        Import memory from the environment
  --import-table         Import function table from the environment
  --initial-memory=<value>
                         Initial size of the linear memory
  --lto-O<opt-level>     Optimization level for LTO
  --lto-partitions=<value>
                         Number of LTO codegen partitions
  -L <dir>               Add a directory to the library search path
  -l <libName>           Root name of library to use
  --max-memory=<value>   Maximum size of the linear memory
  --merge-data-segments  Enable merging data segments
  --mllvm <value>        Options to pass to LLVM
  -m <value>             Set target emulation
  --no-check-features    Ignore feature compatibility of linked objects
  --no-color-diagnostics Do not use colors in diagnostics
  --no-demangle          Do not demangle symbol names
  --no-entry             Do not output any entry point
  --no-export-dynamic    Do not put symbols in the dynamic symbol table (default)
  --no-gc-sections       Disable garbage collection of unused sections
  --no-merge-data-segments
                         Disable merging data segments
  --no-pie               Do not create a position independent executable (default)
  --no-print-gc-sections Do not list removed unused sections
  --no-whole-archive     Do not force load of all members in a static library (default)
  -O <value>             Optimize output file size
  -o <path>              Path to file to write output
  --pie                  Create a position independent executable
  --print-gc-sections    List removed unused sections
  --relocatable          Create relocatable object file
  --reproduce=<value>    Dump linker invocation and input files for debugging
  --rsp-quoting=[posix,windows]
                         Quoting style for response files
  --shared-memory        Use shared linear memory
  --shared               Build a shared object
  --stack-first          Place stack at start of linear memory rather than after data
  --strip-all            Strip all symbols
  --strip-debug          Strip debugging information
  -S                     Alias for --strip-debug
  -s                     Alias for --strip-all
  --thinlto-cache-dir=<value>
                         Path to ThinLTO cached object file directory
  --thinlto-cache-policy=<value>
                         Pruning policy for the ThinLTO cache
  --thinlto-jobs=<value> Number of ThinLTO jobs. Default to --threads=
  --threads=<value>      Number of threads. '1' disables multi-threading. By default all available hardware threads are used
  --trace-symbol=<value> Trace references to symbols
  --trace                Print the names of the input files
  -t                     Alias for --trace
  --undefined=<value>    Force undefined symbol during linking
  --verbose              Verbose mode
  --version              Display the version number and exit
  -v                     Display the version number
  --whole-archive        Force load of all members in a static library
  --wrap=<symbol>=<symbol>
                         Use wrapper functions for symbol
  -y <value>             Alias for --trace-symbol
  -z <option>            Linker option extensions

lldb

LLDB is a next generation, high-performance debugger. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project, such as the Clang expression parser and LLVM disassembler.

This is a dependency package providing the default version of lldb.

Installed size: 22 KB
How to install: sudo apt install lldb

  • lldb-11
lldb

Manual page for lldb 11

root@kali:~# lldb -h
OVERVIEW: LLDB

USAGE: lldb [options]

ATTACHING:
  --attach-name <name> Tells the debugger to attach to a process with the given name.
  --attach-pid <pid>   Tells the debugger to attach to a process with the given pid.
  -n <value>           Alias for --attach-name
  -p <value>           Alias for --attach-pid
  --wait-for           Tells the debugger to wait for a process with the given pid or name to launch before attaching.
  -w                   Alias for --wait-for

COMMANDS:
  --batch              Tells the debugger to run the commands from -s, -S, -o & -O, and then quit.
  -b                   Alias for --batch
  -K <value>           Alias for --source-on-crash
  -k <value>           Alias for --one-line-on-crash
  --local-lldbinit     Allow the debugger to parse the .lldbinit files in the current working directory, unless --no-lldbinit is passed.
  --no-lldbinit        Do not automatically parse any '.lldbinit' files.
  --one-line-before-file <command>
                       Tells the debugger to execute this one-line lldb command before any file provided on the command line has been loaded.
  --one-line-on-crash <command>
                       When in batch mode, tells the debugger to run this one-line lldb command if the target crashes.
  --one-line <command> Tells the debugger to execute this one-line lldb command after any file provided on the command line has been loaded.
  -O <value>           Alias for --one-line-before-file
  -o <value>           Alias for --one-line
  -Q                   Alias for --source-quietly
  --source-before-file <file>
                       Tells the debugger to read in and execute the lldb commands in the given file, before any file has been loaded.
  --source-on-crash <file>
                       When in batch mode, tells the debugger to source this file of lldb commands if the target crashes.
  --source-quietly     Tells the debugger to execute this one-line lldb command before any file has been loaded.
  --source <file>      Tells the debugger to read in and execute the lldb commands in the given file, after any file has been loaded.
  -S <value>           Alias for --source-before-file
  -s <value>           Alias for --source
  -x                   Alias for --no-lldbinit

OPTIONS:
  --arch <architecture> Tells the debugger to use the specified architecture when starting and running the program.
  -a <value>            Alias for --arch
  --capture-path <filename>
                        Tells the debugger to use the given filename for the reproducer.
  --capture             Tells the debugger to capture a reproducer.
  --core <filename>     Tells the debugger to use the full path to <filename> as the core file.
  -c <value>            Alias for --core
  --debug               Tells the debugger to print out extra information for debugging itself.
  -d                    Alias for --debug
  --editor              Tells the debugger to open source files using the host's "external editor" mechanism.
  -e                    Alias for --editor
  --file <filename>     Tells the debugger to use the file <filename> as the program to be debugged.
  -f <value>            Alias for --file
  --help                Prints out the usage information for the LLDB debugger.
  -h                    Alias for --help
  --no-use-colors       Do not use colors.
  --replay <filename>   Tells the debugger to replay a reproducer from <filename>.
  --reproducer-generate-on-exit
                        Generate reproducer on exit.
  --reproducer-no-generate-on-signal
                        Don't generate reproducer when a signal is received.
  --reproducer-no-version-check
                        Disable the reproducer version check.
  --version             Prints out the current version number of the LLDB debugger.
  -v                    Alias for --version
  -X                    Alias for --no-use-color

REPL:
  -r=<flags>     Alias for --repl=<flags>
  --repl-language <language>
                 Chooses the language for the REPL.
  --repl=<flags> Runs lldb in REPL mode with a stub process with the given flags.
  --repl         Runs lldb in REPL mode with a stub process.
  -R <value>     Alias for --repl-language
  -r             Alias for --repl

SCRIPTING:
  -l <value>    Alias for --script-language
  --python-path Prints out the path to the lldb.py file for this version of lldb.
  -P            Alias for --python-path
  --script-language <language>
                Tells the debugger to use the specified scripting language for user-defined scripts.

EXAMPLES:
  The debugger can be started in several modes.

  Passing an executable as a positional argument prepares lldb to debug the
  given executable. To disambiguate between arguments passed to lldb and
  arguments passed to the debugged executable, arguments starting with a - must
  be passed after --.

    lldb --arch x86_64 /path/to/program program argument -- --arch arvm7

  For convenience, passing the executable after -- is also supported.

    lldb --arch x86_64 -- /path/to/program program argument --arch arvm7

  Passing one of the attach options causes lldb to immediately attach to the
  given process.

    lldb -p <pid>
    lldb -n <process-name>

  Passing --repl starts lldb in REPL mode.

    lldb -r

  Passing --core causes lldb to debug the core file.

    lldb -c /path/to/core

  Command options can be combined with these modes and cause lldb to run the
  specified commands before or after events, like loading the file or crashing,
  in the order provided on the command line.

    lldb -O 'settings set stop-disassembly-count 20' -o 'run' -o 'bt'
    lldb -S /source/before/file -s /source/after/file
    lldb -K /source/before/crash -k /source/after/crash

  Note: In REPL mode no file is loaded, so commands specified to run after
  loading the file (via -o or -s) will be ignored.

lldb-argdumper
root@kali:~# lldb-argdumper -h
{"arguments":["-h"]}

lldb-server
root@kali:~# lldb-server -h
Usage:
  lldb-server v[ersion]
  lldb-server g[dbserver] [options]
  lldb-server p[latform] [options]
Invoke subcommand for additional help

llvm

The Low-Level Virtual Machine (LLVM) is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs.

This is a dependency package providing the default llvm package.

Installed size: 84 KB
How to install: sudo apt install llvm

  • llvm-11
  • llvm-runtime
bugpoint
root@kali:~# bugpoint -h
OVERVIEW: LLVM automatic testcase reducer. See
http://llvm.org/cmds/bugpoint.html for more information.

USAGE: bugpoint [options] --args <program arguments>... --tool-args <tool arguments>... --safe-tool-args <safe-tool arguments>... --gcc-tool-args <gcc-tool arguments>... --opt-args <opt arguments>... <input llvm ll/bc files>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --O1                                               - Optimization level 1. Identical to 'opt -O1'
  --O2                                               - Optimization level 2. Identical to 'opt -O2'
  --O3                                               - Optimization level 3. Identical to 'opt -O3'
  --Os                                               - Like -O2 with extra optimizations for size. Similar to clang -Os
  --Oz                                               - Like -Os but reduces code size further. Similar to clang -Oz
  --Xlinker=<string>                                 - Additional arguments to pass to the linker
  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --abs-tolerance=<number>                           - Absolute error tolerated
  --additional-so=<string>                           - Additional shared objects to load into executing programs
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --append-exit-code                                 - Append the exit code to the output so it gets diff'd too
  --args <string>...                                 - <program arguments>...
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --compile-command=<string>                         - Command to compile the bitcode (use with -compile-custom) (default: llc)
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-attribute-remove                         - Do not remove function attributes
  --disable-block-extraction                         - Don't extract blocks when searching for miscompilations
  --disable-dce                                      - Do not use the -dce pass to reduce testcases
  --disable-global-remove                            - Do not remove global variables
  --disable-loop-extraction                          - Don't extract loops when searching for miscompilations
  --disable-namedmd-remove                           - Do not remove global named metadata
  --disable-pass-list-reduction                      - Skip pass list reduction steps
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --disable-simplifycfg                              - Do not use the -simplifycfg pass to reduce testcases
  --disable-strip-debug-types                        - Do not strip debug type info metadata
  --disable-strip-debuginfo                          - Do not strip debug info metadata
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --enable-valgrind                                  - Run optimizations through valgrind
  --exec-command=<string>                            - Command to execute the bitcode (use with -run-custom) (default: simulate)
  --find-bugs                                        - Run many different optimization sequences on program to find bugs
  --gcc=<string>                                     - The gcc binary to use.
  --gcc-tool-args <string>...                        - <gcc-tool arguments>...
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  Passes available:
      --aa                                              - Function Alias Analysis Results
      --aa-eval                                         - Exhaustive Alias Analysis Precision Evaluator
      --adce                                            - Aggressive Dead Code Elimination
      --add-discriminators                              - Add DWARF path discriminators
      --aggressive-instcombine                          - Combine pattern based expressions
      --alignment-from-assumptions                      - Alignment from assumptions
      --always-inline                                   - Inliner for always_inline functions
      --argpromotion                                    - Promote 'by reference' arguments to scalars
      --asan                                            - AddressSanitizer: detects use-after-free and out-of-bounds bugs.
      --asan-globals-md                                 - Read metadata to mark which globals should be instrumented when running ASan.
      --asan-module                                     - AddressSanitizer: detects use-after-free and out-of-bounds bugs.ModulePass
      --assume-builder                                  - Assume Builder
      --assume-simplify                                 - Assume Simplify
      --assumption-cache-tracker                        - Assumption Cache Tracker
      --attributor                                      - Deduce and propagate attributes
      --attributor-cgscc                                - Deduce and propagate attributes (CGSCC pass)
      --barrier                                         - A No-Op Barrier Pass
      --basic-aa                                        - Basic Alias Analysis (stateless AA impl)
      --basiccg                                         - CallGraph Construction
      --bdce                                            - Bit-Tracking Dead Code Elimination
      --block-freq                                      - Block Frequency Analysis
      --bounds-checking                                 - Run-time bounds checking
      --branch-prob                                     - Branch Probability Analysis
      --break-crit-edges                                - Break critical edges in CFG
      --called-value-propagation                        - Called Value Propagation
      --callsite-splitting                              - Call-site splitting
      --canon-freeze                                    - Canonicalize Freeze Instructions in Loops
      --canonicalize-aliases                            - Canonicalize aliases
      --cfl-anders-aa                                   - Inclusion-Based CFL Alias Analysis
      --cfl-steens-aa                                   - Unification-Based CFL Alias Analysis
      --cg-profile                                      - Call Graph Profile
      --check-debugify                                  - Check debug info from -debugify
      --check-debugify-function                         - Check debug info from -debugify-function
      --chr                                             - Reduce control height in the hot paths
      --consthoist                                      - Constant Hoisting
      --constmerge                                      - Merge Duplicate Global Constants
      --constprop                                       - Simple constant propagation
      --correlated-propagation                          - Value Propagation
      --cost-model                                      - Cost Model Analysis
      --cross-dso-cfi                                   - Cross-DSO CFI
      --da                                              - Dependence Analysis
      --dce                                             - Dead Code Elimination
      --deadargelim                                     - Dead Argument Elimination
      --deadarghaX0r                                    - Dead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE)
      --debugify                                        - Attach debug info to everything
      --debugify-function                               - Attach debug info to a function
      --delinearize                                     - Delinearization
      --demanded-bits                                   - Demanded bits analysis
      --dfsan                                           - DataFlowSanitizer: dynamic data flow analysis.
      --die                                             - Dead Instruction Elimination
      --div-rem-pairs                                   - Hoist/decompose integer division and remainder
      --divergence                                      - Legacy Divergence Analysis
      --domfrontier                                     - Dominance Frontier Construction
      --domtree                                         - Dominator Tree Construction
      --dot-callgraph                                   - Print call graph to 'dot' file
      --dot-cfg                                         - Print CFG of function to 'dot' file
      --dot-cfg-only                                    - Print CFG of function to 'dot' file (with no function bodies)
      --dot-dom                                         - Print dominance tree of function to 'dot' file
      --dot-dom-only                                    - Print dominance tree of function to 'dot' file (with no function bodies)
      --dot-postdom                                     - Print postdominance tree of function to 'dot' file
      --dot-postdom-only                                - Print postdominance tree of function to 'dot' file (with no function bodies)
      --dot-regions                                     - Print regions of function to 'dot' file
      --dot-regions-only                                - Print regions of function to 'dot' file (with no function bodies)
      --dot-scops                                       - Polly - Print Scops of function
      --dot-scops-only                                  - Polly - Print Scops of function (with no function bodies)
      --dse                                             - Dead Store Elimination
      --early-cse                                       - Early CSE
      --early-cse-memssa                                - Early CSE w/ MemorySSA
      --ee-instrument                                   - Instrument function entry/exit with calls to e.g. mcount() (pre inlining)
      --elim-avail-extern                               - Eliminate Available Externally Globals
      --external-aa                                     - External Alias Analysis
      --extract-blocks                                  - Extract basic blocks from module
      --fix-irreducible                                 - Convert irreducible control-flow into natural loops
      --flattencfg                                      - Flatten the CFG
      --float2int                                       - Float to int
      --forceattrs                                      - Force set function attributes
      --function-import                                 - Summary Based Function Import
      --functionattrs                                   - Deduce function attributes
      --globaldce                                       - Dead Global Elimination
      --globalopt                                       - Global Variable Optimizer
      --globals-aa                                      - Globals Alias Analysis
      --globalsplit                                     - Global splitter
      --guard-widening                                  - Widen guards
      --gvn                                             - Global Value Numbering
      --gvn-hoist                                       - Early GVN Hoisting of Expressions
      --gvn-sink                                        - Early GVN sinking of Expressions
      --hotcoldsplit                                    - Hot Cold Splitting
      --hwasan                                          - HWAddressSanitizer: detect memory bugs using tagged addressing.
      --indvars                                         - Induction Variable Simplification
      --infer-address-spaces                            - Infer address spaces
      --inferattrs                                      - Infer set function attributes
      --inject-tli-mappings                             - Inject TLI Mappings
      --inline                                          - Function Integration/Inlining
      --insert-gcov-profiling                           - Insert instrumentation for GCOV profiling
      --instcombine                                     - Combine redundant instructions
      --instcount                                       - Counts the various types of Instructions
      --instnamer                                       - Assign names to anonymous instructions
      --instrorderfile                                  - Instrumentation for Order File
      --instrprof                                       - Frontend instrumentation-based coverage lowering.
      --instsimplify                                    - Remove redundant instructions
      --internalize                                     - Internalize Global Symbols
      --intervals                                       - Interval Partition Construction
      --ipconstprop                                     - Interprocedural constant propagation
      --ipsccp                                          - Interprocedural Sparse Conditional Constant Propagation
      --irce                                            - Inductive range check elimination
      --iv-users                                        - Induction Variable Users
      --jump-threading                                  - Jump Threading
      --lazy-block-freq                                 - Lazy Block Frequency Analysis
      --lazy-branch-prob                                - Lazy Branch Probability Analysis
      --lazy-value-info                                 - Lazy Value Information Analysis
      --lcssa                                           - Loop-Closed SSA Form Pass
      --lcssa-verification                              - LCSSA Verifier
      --libcalls-shrinkwrap                             - Conditionally eliminate dead library calls
      --licm                                            - Loop Invariant Code Motion
      --lint                                            - Statically lint-checks LLVM IR
      --load-store-vectorizer                           - Vectorize load and store instructions
      --loop-accesses                                   - Loop Access Analysis
      --loop-data-prefetch                              - Loop Data Prefetch
      --loop-deletion                                   - Delete dead loops
      --loop-distribute                                 - Loop Distribution
      --loop-extract                                    - Extract loops into new functions
      --loop-extract-single                             - Extract at most one loop into a new function
      --loop-fusion                                     - Loop Fusion
      --loop-guard-widening                             - Widen guards (within a single loop, as a loop pass)
      --loop-idiom                                      - Recognize loop idioms
      --loop-instsimplify                               - Simplify instructions in loops
      --loop-interchange                                - Interchanges loops for cache reuse
      --loop-load-elim                                  - Loop Load Elimination
      --loop-predication                                - Loop predication
      --loop-reduce                                     - Loop Strength Reduction
      --loop-reroll                                     - Reroll loops
      --loop-rotate                                     - Rotate Loops
      --loop-simplify                                   - Canonicalize natural loops
      --loop-simplifycfg                                - Simplify loop CFG
      --loop-sink                                       - Loop Sink
      --loop-unroll                                     - Unroll loops
      --loop-unroll-and-jam                             - Unroll and Jam loops
      --loop-unswitch                                   - Unswitch loops
      --loop-vectorize                                  - Loop Vectorization
      --loop-versioning                                 - Loop Versioning
      --loop-versioning-licm                            - Loop Versioning For LICM
      --loops                                           - Natural Loop Information
      --lower-constant-intrinsics                       - Lower constant intrinsics
      --lower-expect                                    - Lower 'expect' Intrinsics
      --lower-guard-intrinsic                           - Lower the guard intrinsic to normal control flow
      --lower-matrix-intrinsics                         - Lower the matrix intrinsics
      --lower-widenable-condition                       - Lower the widenable condition to default true value
      --loweratomic                                     - Lower atomic intrinsics to non-atomic form
      --lowerinvoke                                     - Lower invoke and unwind, for unwindless code generators
      --lowerswitch                                     - Lower SwitchInst's to branches
      --lowertypetests                                  - Lower type metadata
      --make-guards-explicit                            - Lower the guard intrinsic to explicit control flow form
      --mem2reg                                         - Promote Memory to Register
      --memcpyopt                                       - MemCpy Optimization
      --memdep                                          - Memory Dependence Analysis
      --memoryssa                                       - Memory SSA
      --mergefunc                                       - Merge Functions
      --mergeicmps                                      - Merge contiguous icmps into a memcmp
      --mergereturn                                     - Unify function exit nodes
      --metarenamer                                     - Assign new names to everything
      --mldst-motion                                    - MergedLoadStoreMotion
      --module-debuginfo                                - Decodes module-level debug info
      --module-summary-analysis                         - Module Summary Analysis
      --module-summary-info                             - Module summary info
      --msan                                            - MemorySanitizer: detects uninitialized reads.
      --name-anon-globals                               - Provide a name to nameless globals
      --nary-reassociate                                - Nary reassociation
      --newgvn                                          - Global Value Numbering
      --objc-arc                                        - ObjC ARC optimization
      --objc-arc-aa                                     - ObjC-ARC-Based Alias Analysis
      --objc-arc-apelim                                 - ObjC ARC autorelease pool elimination
      --objc-arc-contract                               - ObjC ARC contraction
      --objc-arc-expand                                 - ObjC ARC expansion
      --openmpopt                                       - OpenMP specific optimizations
      --opt-remark-emitter                              - Optimization Remark Emitter
      --pa-eval                                         - Evaluate ProvenanceAnalysis on all pairs
      --partial-inliner                                 - Partial Inliner
      --partially-inline-libcalls                       - Partially inline calls to library functions
      --pgo-icall-prom                                  - Use PGO instrumentation profile to promote indirect calls to direct calls.
      --pgo-instr-gen                                   - PGO instrumentation.
      --pgo-instr-use                                   - Read PGO instrumentation profile.
      --pgo-memop-opt                                   - Optimize memory intrinsic using its size value profile
      --phi-values                                      - Phi Values Analysis
      --place-backedge-safepoints-impl                  - Place Backedge Safepoints
      --place-safepoints                                - Place Safepoints
      --polly-ast                                       - Polly - Generate an AST from the SCoP (isl)
      --polly-canonicalize                              - Polly - Run canonicalization passes
      --polly-cleanup                                   - Polly - Cleanup after code generation
      --polly-codegen                                   - Polly - Create LLVM-IR from SCoPs
      --polly-dce                                       - Polly - Remove dead iterations
      --polly-delicm                                    - Polly - DeLICM/DePRE
      --polly-dependences                               - Polly - Calculate dependences
      --polly-detect                                    - Polly - Detect static control parts (SCoPs)
      --polly-dump-module                               - Polly - Dump Module
      --polly-export-jscop                              - Polly - Export Scops as JSON (Writes a .jscop file for each Scop)
      --polly-flatten-schedule                          - Polly - Flatten schedule
      --polly-function-dependences                      - Polly - Calculate dependences for all the SCoPs of a function
      --polly-function-scops                            - Polly - Create polyhedral description of all Scops of a function
      --polly-import-jscop                              - Polly - Import Scops from JSON (Reads a .jscop file for each Scop)
      --polly-mse                                       - Polly - Maximal static expansion of SCoP
      --polly-opt-isl                                   - Polly - Optimize schedule of SCoP
      --polly-optree                                    - Polly - Forward operand tree
      --polly-prepare                                   - Polly - Prepare code for polly
      --polly-prune-unprofitable                        - Polly - Prune unprofitable SCoPs
      --polly-rewrite-byref-params                      - Polly - Rewrite by reference parameters
      --polly-scop-inliner                              - inline functions based on how much of the function is a scop.
      --polly-scops                                     - Polly - Create polyhedral description of Scops
      --polly-simplify                                  - Polly - Simplify
      --polyhedral-info                                 - Polly - Interface to polyhedral analysis engine
      --post-inline-ee-instrument                       - Instrument function entry/exit with calls to e.g. mcount() (post inlining)
      --postdomtree                                     - Post-Dominator Tree Construction
      --print-alias-sets                                - Alias Set Printer
      --print-callgraph                                 - Print a call graph
      --print-function                                  - Print function to stderr
      --print-lazy-value-info                           - Lazy Value Info Printer Pass
      --print-memdeps                                   - Print MemDeps of function
      --print-memderefs                                 - Memory Dereferenciblity of pointers in function
      --print-memoryssa                                 - Memory SSA Printer
      --print-module                                    - Print module to stderr
      --print-must-be-executed-contexts                 - print the must-be-executed-contexed for all instructions
      --print-mustexecute                               - Instructions which execute on loop entry
      --print-predicateinfo                             - PredicateInfo Printer
      --profile-summary-info                            - Profile summary info
      --prune-eh                                        - Remove unused exception handling info
      --reassociate                                     - Reassociate expressions
      --redundant-dbg-inst-elim                         - Redundant Dbg Instruction Elimination
      --reg2mem                                         - Demote all values to stack slots
      --regions                                         - Detect single entry single exit regions
      --rewrite-statepoints-for-gc                      - Make relocations explicit at statepoints
      --rpo-functionattrs                               - Deduce function attributes in RPO
      --sample-profile                                  - Sample Profile loader
      --sancov                                          - Pass for instrumenting coverage on functions
      --scalar-evolution                                - Scalar Evolution Analysis
      --scalarizer                                      - Scalarize vector operations
      --sccp                                            - Sparse Conditional Constant Propagation
      --scev-aa                                         - ScalarEvolution-based Alias Analysis
      --scoped-noalias                                  - Scoped NoAlias Alias Analysis
      --separate-const-offset-from-gep                  - Split GEPs to a variadic base and a constant offset for better CSE
      --simple-loop-unswitch                            - Simple unswitch loops
      --simplifycfg                                     - Simplify the CFG
      --sink                                            - Code sinking
      --slp-vectorizer                                  - SLP Vectorizer
      --slsr                                            - Straight line strength reduction
      --speculative-execution                           - Speculatively execute instructions
      --sroa                                            - Scalar Replacement Of Aggregates
      --stack-safety                                    - Stack Safety Analysis
      --stack-safety-local                              - Stack Safety Local Analysis
      --strip                                           - Strip all symbols from a module
      --strip-dead-debug-info                           - Strip debug info for unused symbols
      --strip-dead-prototypes                           - Strip Unused Function Prototypes
      --strip-debug-declare                             - Strip all llvm.dbg.declare intrinsics
      --strip-gc-relocates                              - Strip gc.relocates inserted through RewriteStatepointsForGC
      --strip-nondebug                                  - Strip all symbols, except dbg symbols, from a module
      --strip-nonlinetable-debuginfo                    - Strip all debug info except linetables
      --structurizecfg                                  - Structurize the CFG
      --tailcallelim                                    - Tail Call Elimination
      --targetlibinfo                                   - Target Library Information
      --tbaa                                            - Type-Based Alias Analysis
      --transform-warning                               - Warn about non-applied transformations
      --tsan                                            - ThreadSanitizer: detects data races.
      --tti                                             - Target Transform Information
      --unify-loop-exits                                - Fixup each natural loop to have a single exit block
      --unique-internal-linkage-names                   - Uniqueify Internal linkage names
      --vector-combine                                  - Optimize scalar/vector ops
      --verify                                          - Module Verifier
      --verify-safepoint-ir                             - Safepoint IR Verifier
      --view-callgraph                                  - View call graph
      --view-cfg                                        - View CFG of function
      --view-cfg-only                                   - View CFG of function (with no function bodies)
      --view-dom                                        - View dominance tree of function
      --view-dom-only                                   - View dominance tree of function (with no function bodies)
      --view-postdom                                    - View postdominance tree of function
      --view-postdom-only                               - View postdominance tree of function (with no function bodies)
      --view-regions                                    - View regions of function
      --view-regions-only                               - View regions of function (with no function bodies)
      --view-scops                                      - Polly - View Scops of function
      --view-scops-only                                 - Polly - View Scops of function (with no function bodies)
      --wholeprogramdevirt                              - Whole program devirtualization
  --input=<string>                                   - Filename to pipe in as stdin (default: /dev/null)
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --keep-main                                        - Force function reduction to keep main
  --load=<pluginfilename>                            - Load the specified plugin
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mlimit=<MBytes>                                  - Maximum amount of memory to use. 0 disables check. Defaults to 400MB (800MB under valgrind, 0 with sanitizers).
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mtriple=<string>                                 - Override target triple for module
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --opt-args <string>...                             - <opt arguments>...
  --opt-command=<string>                             - Path to opt. (default: search path for 'opt'.)
  --output=<string>                                  - Specify a reference program output (for miscompilation detection)
  --output-prefix=<string>                           - Prefix to use for outputs (default: 'bugpoint')
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --rel-tolerance=<number>                           - Relative error tolerated
  --remote-client=<string>                           - Remote execution client (rsh/ssh)
  --remote-extra-options=<string>                    - Remote execution (rsh/ssh) extra options
  --remote-host=<string>                             - Remote execution (rsh/ssh) host
  --remote-port=<string>                             - Remote execution (rsh/ssh) port
  --remote-user=<string>                             - Remote execution (rsh/ssh) user id
  --replace-funcs-with-null                          - When stubbing functions, replace all uses will null
  Specify the "test" i.e. suspect back-end:
      --auto                                            - Use best guess
      --run-int                                         - Execute with the interpreter
      --run-jit                                         - Execute with JIT
      --run-llc                                         - Compile with LLC
      --run-llc-ia                                      - Compile with LLC with integrated assembler
      --llc-safe                                        - Use LLC for all
      --compile-custom                                  - Use -compile-command to define a command to compile the bitcode. Useful to avoid linking.
      --run-custom                                      - Use -exec-command to define a command to execute the bitcode. Useful for cross-compilation.
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safe-path=<string>                               - Specify the path to the "safe" backend program
  Specify "safe" i.e. known-good backend:
      --safe-auto                                       - Use best guess
      --safe-run-llc                                    - Compile with LLC
      --safe-run-custom                                 - Use -exec-command to define a command to execute the bitcode. Useful for cross-compilation.
  --safe-tool-args <string>...                       - <safe-tool arguments>...
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --save-temps                                       - Save temporary files
  --silence-passes                                   - Suppress output of running passes (both stdout and stderr)
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --std-link-opts                                    - Include the standard link time optimizations
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --timeout=<seconds>                                - Number of seconds program is allowed to run before it is killed (default is 300s), 0 disables timeout
  --tool-args <string>...                            - <tool arguments>...
  --verbose-errors                                   - Print the output of crashing program
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

dsymutil
root@kali:~# dsymutil -h
OVERVIEW: manipulate archived DWARF debug symbol files.

dsymutil links the DWARF debug information found in the object files
for the executable <input file> by using debug symbols information
contained in its symbol table.


USAGE: dsymutil [options] <input files>

Dsymutil Options:
  --accelerator <accelerator type>
                          Specify the desired type of accelerator table. Valid options are 'Apple', 'Dwarf' and 'Default'
  --arch <arch>           Link DWARF debug information only for specified CPU architecturetypes. This option can be specified multiple times, once for eachdesired architecture. All CPU architectures will be linked bydefault.
  --dump-debug-map        Parse and dump the debug map to standard output. Not DWARF link will take place.
  --flat                  Produce a flat dSYM file (not a bundle).
  -f                      Alias for --flat
  --gen-reproducer        Generate a reproducer consisting of the input object files.
  --help                  Prints this help output.
  -h                      Alias for --help
  -j <threads>            Alias for --num-threads
  --minimize              When used when creating a dSYM file with Apple accelerator tables, this option will suppress the emission of the .debug_inlines, .debug_pubnames, and .debug_pubtypes sections since dsymutil has better equivalents: .apple_names and .apple_types. When used in conjunction with --update option, this option will cause redundant accelerator tables to be removed.
  --no-odr                Do not use ODR (One Definition Rule) for type uniquing.
  --no-output             Do the link in memory, but do not emit the result file.
  --no-swiftmodule-timestamp
                          Don't check timestamp for swiftmodule files.
  --num-threads <threads> Specifies the maximum number of simultaneous threads to use when linking multiple architectures.
  --object-prefix-map <prefix=remapped>
                          Remap object file paths (but no source paths) before processing.Use this for Clang objects where the module cache location wasremapped using -fdebug-prefix-map; to help dsymutilfind the Clang module cache.
  --oso-prepend-path <path>
                          Specify a directory to prepend to the paths of object files.
  --out <filename>        Alias for -o
  -o <filename>           Specify the output file. Defaults to <input file>.dwarf
  --papertrail            Embed warnings in the linked DWARF debug info.
  --remarks-output-format <format>
                          Specify the format to be used when serializing the linked remarks.
  --remarks-prepend-path <path>
                          Specify a directory to prepend to the paths of the external remark files.
  --statistics            Print statistics about the contribution of each object file to the linked debug info. This prints a table after linking with the object file name, the size of the debug info in the object file (in bytes) and the size contributed (in bytes) to the linked dSYM. The table is sorted by the output size listing the object files with the largest contribution first.
  --symbol-map <bcsymbolmap>
                          Updates the existing dSYMs inplace using symbol map specified.
  --symtab                Dumps the symbol table found in executable or object file(s) and exits.
  -S                      Output textual assembly instead of a binary dSYM companion file.
  -s                      Alias for --symtab
  --toolchain <toolchain> Embed toolchain information in dSYM bundle.
  --update                Updates existing dSYM files to contain the latest accelerator tables and other DWARF optimizations.
  --use-reproducer <path> Use the object files from the given reproducer path.
  -u                      Alias for --update
  --verbose               Enable verbose mode.
  --verify                Run the DWARF verifier on the linked DWARF debug info.
  --version               Prints the dsymutil version.
  -v                      Alias for --version
  -y                      Treat the input file is a YAML debug map rather than a binary.
  -z                      Alias for --minimize

llc
root@kali:~# llc -h
OVERVIEW: llvm system compiler

USAGE: llc [options] <input bitcode>

OPTIONS:

Color Options:

  --color                                                              - Use colors in output (default=autodetect)

General options:

  -I=<string>                                                          - include search path
  -O=<char>                                                            - Optimization level. [-O0, -O1, -O2, or -O3] (default = '-O2')
  --aarch64-neon-syntax=<value>                                        - Choose style of NEON code to emit from AArch64 backend:
    =generic                                                           -   Emit generic NEON assembly
    =apple                                                             -   Emit Apple-style NEON assembly
  --addrsig                                                            - Emit an address-significance table
  --amdgpu-bypass-slow-div                                             - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                                      - Do not align and prefetch loops
  --amdgpu-disable-power-sched                                         - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                                                 - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                                           - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                                     - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                                             - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>                       - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill                                 - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                                               - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                                         - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                                             - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                                           - 
  --arm-implicit-it=<value>                                            - Allow conditional instructions outdside of an IT block
    =always                                                            -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                                             -   Warn in ARM, reject in Thumb
    =arm                                                               -   Accept in ARM, reject in Thumb
    =thumb                                                             -   Warn in ARM, emit implicit ITs in Thumb
  --asm-show-inst                                                      - Emit internal instruction representation to assembly file
  --asm-verbose                                                        - Add comments to directives.
  --atomic-counter-update-promoted                                     - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                                               - Use atomic fetch add for first counter in a function (usually the entry counter)
  --basicblock-sections=<all | <function list (file)> | labels | none> - Emit basic blocks into separate sections
  --bounds-checking-single-trap                                        - Use one trap block per function
  --cfg-hide-deoptimize-paths                                          - 
  --cfg-hide-unreachable-paths                                         - 
  --code-model=<value>                                                 - Choose code model
    =tiny                                                              -   Tiny code model
    =small                                                             -   Small code model
    =kernel                                                            -   Kernel code model
    =medium                                                            -   Medium code model
    =large                                                             -   Large code model
  --cost-kind=<value>                                                  - Target cost kind
    =throughput                                                        -   Reciprocal throughput
    =latency                                                           -   Instruction latency
    =code-size                                                         -   Code size
  --cvp-dont-add-nowrap-flags                                          - 
  --data-sections                                                      - Emit data into separate sections
  --debug-entry-values                                                 - Enable debug info for the debug entry values.
  --debugger-tune=<value>                                              - Tune debug info for a particular debugger
    =gdb                                                               -   gdb
    =lldb                                                              -   lldb
    =sce                                                               -   SCE targets (e.g. PS4)
  --debugify-level=<value>                                             - Kind of debug info to add
    =locations                                                         -   Locations only
    =location+variables                                                -   Locations and Variables
  --debugify-quiet                                                     - Suppress verbose debugify output
  --denormal-fp-math=<value>                                           - Select which denormal numbers the code is permitted to require
    =ieee                                                              -   IEEE 754 denormal numbers
    =preserve-sign                                                     -   the sign of a  flushed-to-zero number is preserved in the sign of 0
    =positive-zero                                                     -   denormals are flushed to positive zero
  --denormal-fp-math-f32=<value>                                       - Select which denormal numbers the code is permitted to require for float
    =ieee                                                              -   IEEE 754 denormal numbers
    =preserve-sign                                                     -   the sign of a  flushed-to-zero number is preserved in the sign of 0
    =positive-zero                                                     -   denormals are flushed to positive zero
  --disable-promote-alloca-to-lds                                      - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                                   - Disable promote alloca to vector
  --disable-simplify-libcalls                                          - Disable simplify-libcalls
  --disable-tail-calls                                                 - Never emit tail calls
  --do-counter-promotion                                               - Do counter register promotion
  --dwarf-version=<int>                                                - Dwarf version
  --dwarf64                                                            - Generate debugging info in the 64-bit DWARF format
  --emit-call-site-info                                                - Emit call site debug information, if debug information is enabled.
  --emscripten-cxx-exceptions-allowed=<string>                         - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --emulated-tls                                                       - Use emulated TLS model
  --enable-cse-in-irtranslator                                         - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                                            - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                                   - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                                             - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                                   - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                                  - 
  --enable-gvn-sink                                                    - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                                            - 
  --enable-load-pre                                                    - 
  --enable-loop-simplifycfg-term-folding                               - 
  --enable-name-compression                                            - Enable name/filename string compression
  --enable-no-infs-fp-math                                             - Enable FP math optimizations that assume no +-Infs
  --enable-no-nans-fp-math                                             - Enable FP math optimizations that assume no NaNs
  --enable-no-signed-zeros-fp-math                                     - Enable FP math optimizations that assume the sign of 0 is insignificant
  --enable-no-trapping-fp-math                                         - Enable setting the FP exceptions build attribute not to use exceptions
  --enable-unsafe-fp-math                                              - Enable optimizations that may decrease FP precision
  --exception-model=<value>                                            - exception model
    =default                                                           -   default exception handling model
    =dwarf                                                             -   DWARF-like CFI based exception handling
    =sjlj                                                              -   SjLj exception handling
    =arm                                                               -   ARM EHABI exceptions
    =wineh                                                             -   Windows exception model
    =wasm                                                              -   WebAssembly exception handling
  --fatal-warnings                                                     - Treat warnings as errors
  --filetype=<value>                                                   - Choose a file type (not all types are supported by all targets):
    =asm                                                               -   Emit an assembly ('.s') file
    =obj                                                               -   Emit a native object ('.o') file
    =null                                                              -   Emit nothing, for performance testing
  --float-abi=<value>                                                  - Choose float ABI type
    =default                                                           -   Target default float ABI type
    =soft                                                              -   Soft float ABI (implied by -soft-float)
    =hard                                                              -   Hard float ABI (uses FP registers)
  --force-dwarf-frame-section                                          - Always emit a debug frame section.
  --fp-contract=<value>                                                - Enable aggressive formation of fused FP ops
    =fast                                                              -   Fuse FP ops whenever profitable
    =on                                                                -   Only fuse 'blessed' FP ops.
    =off                                                               -   Only fuse FP ops when the result won't be affected.
  --frame-pointer=<value>                                              - Specify frame pointer elimination optimization
    =all                                                               -   Disable frame pointer elimination
    =non-leaf                                                          -   Disable frame pointer elimination for non-leaf frame
    =none                                                              -   Enable frame pointer elimination
  --function-sections                                                  - Emit functions into separate sections
  --gpsize=<uint>                                                      - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                                           - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                                     - Enable hot-cold splitting pass
  --import-all-index                                                   - Import all external functions in index.
  --incremental-linker-compatible                                      - When used with filetype=obj, emit an object file which can be used with an incremental linker
  --instcombine-code-sinking                                           - Enable code sinking
  --instcombine-guard-widening-window=<uint>                           - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                                  - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                                    - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                                   - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                                        - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>                               - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all                                - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>                             - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>                                 - A list of symbol names to preserve
  --iterative-counter-promotion                                        - Allow counter promotion across the whole loop nest.
  --load=<pluginfilename>                                              - Load the specified plugin
  --lto-embed-bitcode                                                  - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                                    - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                                   - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>                                 - Output filename for pass remarks
  --march=<string>                                                     - Architecture to generate code for (see --version)
  --matrix-default-layout=<value>                                      - Sets the default matrix layout
    =column-major                                                      -   Use column-major layout
    =row-major                                                         -   Use row-major layout
  --mattr=<a1,+a2,-a3,...>                                             - Target specific attributes (-mattr=help for details)
  --max-counter-promotions=<int>                                       - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>                             - Max number counter promotions per loop to avoid increasing register pressure too much
  --mc-relax-all                                                       - When used with filetype=obj, relax all fixups in the emitted object file
  --mcpu=<cpu-name>                                                    - Target a specific cpu type (-mcpu=help for details)
  --meabi=<value>                                                      - Set EABI type (default depends on triple):
    =default                                                           -   Triple default EABI version
    =4                                                                 -   EABI version 4
    =5                                                                 -   EABI version 5
    =gnu                                                               -   EABI GNU
  --memop-size-large=<uint>                                            - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                                          - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                                         - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                                      - Error for register names that aren't contigious
  --mhvx                                                               - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                                       - Enable Hexagon Vector eXtensions
    =v60                                                               -   Build for HVX v60
    =v62                                                               -   Build for HVX v62
    =v65                                                               -   Build for HVX v65
    =v66                                                               -   Build for HVX v66
    =v67                                                               -   Build for HVX v67
  --mips-compact-branches=<value>                                      - MIPS Specific: Compact branch policy.
    =never                                                             -   Do not use compact branches if possible.
    =optimal                                                           -   Use compact branches where appropriate (default).
    =always                                                            -   Always use compact branches if possible.
  --mips16-constant-islands                                            - Enable mips16 constant islands.
  --mips16-hard-float                                                  - Enable mips16 hard float.
  --mir-strip-debugify-only                                            - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                                       - Disable looking for compound instructions for Hexagon
  --mno-fixup                                                          - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                                      - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                                        - Disable looking for duplex instructions for Hexagon
  --mtriple=<string>                                                   - Override target triple for module
  --mwarn-missing-parenthesis                                          - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                                       - Warn for register names that arent contigious
  --mwarn-sign-mismatch                                                - Warn for mismatching a signed and unsigned value
  --no-deprecated-warn                                                 - Suppress all deprecated warnings
  --no-discriminators                                                  - Disable generation of discriminator information.
  --no-warn                                                            - Suppress all warnings
  --no-xray-index                                                      - Don't emit xray_fn_idx section
  --nozero-initialized-in-bss                                          - Don't place zero-initialized symbols into bss section
  --nvptx-sched4reg                                                    - NVPTX Specific: schedule for register pressue
  -o=<filename>                                                        - Output filename
  --pass-remarks-filter=<regex>                                        - Only record optimization remarks from passes whose names match the given regular expression
  --pass-remarks-format=<format>                                       - The format used for serializing remarks (default: YAML)
  --pass-remarks-output=<filename>                                     - Output filename for pass remarks
  --poison-checking-function-local                                     - Check that returns are non-poison (for testing)
  --r600-ir-structurize                                                - Use StructurizeCFG IR pass
  --rdf-dump                                                           - 
  --rdf-limit=<uint>                                                   - 
  --relax-elf-relocations                                              - Emit GOTPCRELX/REX_GOTPCRELX instead of GOTPCREL on x86-64 ELF
  --relocation-model=<value>                                           - Choose relocation model
    =static                                                            -   Non-relocatable code
    =pic                                                               -   Fully relocatable, position independent code
    =dynamic-no-pic                                                    -   Relocatable external references, non-relocatable code
    =ropi                                                              -   Code and read-only data relocatable, accessed PC-relative
    =rwpi                                                              -   Read-write data relocatable, accessed relative to static base
    =ropi-rwpi                                                         -   Combination of ropi and rwpi
  --run-pass=<pass-name>                                               - Run compiler only for specified passes (comma separated list)
  --runtime-counter-relocation                                         - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                                   - 
  --sample-profile-check-record-coverage=<N>                           - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>                           - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>                     - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint>                   - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop                              - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --split-dwarf-file=<string>                                          - Specify the name of the .dwo file to encode in the DWARF output
  --split-dwarf-output=<filename>                                      - .dwo output filename
  --stack-alignment=<uint>                                             - Override default stack alignment
  --stack-size-section                                                 - Emit a section containing stack size metadata
  --stack-symbol-ordering                                              - Order local stack symbols.
  --stackrealign                                                       - Force align the stack to the minimum alignment
  --summary-file=<string>                                              - The summary file to use for function importing.
  --tail-predication=<value>                                           - MVE tail-predication options
    =disabled                                                          -   Don't tail-predicate loops
    =enabled-no-reductions                                             -   Enable tail-predication, but not for reduction loops
    =enabled                                                           -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                                       -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                                     -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --tailcallopt                                                        - Turn fastcc calls into tail calls by (potentially) changing ABI.
  --thread-model=<value>                                               - Choose threading model
    =posix                                                             -   POSIX thread model
    =single                                                            -   Single thread model
  --threads=<int>                                                      - 
  --tls-size=<uint>                                                    - Bit size of immediate TLS offsets
  --unique-bb-section-names                                            - Give unique names to every basic block section
  --unique-section-names                                               - Give unique names to every section
  --use-ctors                                                          - Use .ctors instead of .init_array.
  --verify-region-info                                                 - Verify region info (time consuming)
  --vp-counters-per-site=<number>                                      - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                                    - Do static counter allocation for value profiler
  -x=<string>                                                          - Input language ('ir' or 'mir')
  --x86-align-branch=<string>                                          - Specify types of branches to align (plus separated list of types):
                                                                         jcc      indicates conditional jumps
                                                                         fused    indicates fused conditional jumps
                                                                         jmp      indicates direct unconditional jumps
                                                                         call     indicates direct and indirect calls
                                                                         ret      indicates rets
                                                                         indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                                   - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries                                 - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                                     - Maximum number of prefixes to use for padding

Generic Options:

  --help                                                               - Display available options (--help-hidden for more)
  --help-list                                                          - Display list of available options (--help-list-hidden for more)
  --version                                                            - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                                              - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                                             - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                                           - Print memory access functions
  --polly-context=<isl parameter set>                                  - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                                      - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                                         - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                                        - Allow the detection of full functions
  --polly-dump-after                                                   - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                                     - Dump module after Polly transformations to the given file
  --polly-dump-before                                                  - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                                    - Dump module before Polly transformations to the given file
  --polly-enable-simplify                                              - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                                         - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                                           - Option passed to ISL
  --polly-on-isl-error-abort                                           - Abort if an isl error is encountered
  --polly-only-func=<string>                                           - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                                     - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                                          - Only run scop detection, but no other optimizations
  --polly-optimized-scops                                              - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                                     - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                                               - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                                  - Perform optimizations based on pattern matching
  --polly-process-unprofitable                                         - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                                              - Enable register tiling
  --polly-report                                                       - Print information about the activities of Polly
  --polly-show                                                         - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                                    - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                                     - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                                                -   One statement per basic block
    =scalar-indep                                                      -   Scalar independence heuristic
    =store                                                             -   Store-level granularity
  --polly-target=<value>                                               - The hardware to target
    =cpu                                                               -   generate CPU code
  --polly-tiling                                                       - Enable loop tiling
  --polly-vectorizer=<value>                                           - Select the vectorization strategy
    =none                                                              -   No Vectorization
    =polly                                                             -   Polly internal vectorizer
    =stripmine                                                         -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-PerfectShuffle

llvm-ar
root@kali:~# llvm-ar -h
OVERVIEW: LLVM Archiver

USAGE: llvm-ar [options] [-]<operation>[modifiers] [relpos] [count] <archive> [files]
       llvm-ar -M [<mri-script]

OPTIONS:
  --format              - archive format to create
    =default            -   default
    =gnu                -   gnu
    =darwin             -   darwin
    =bsd                -   bsd
  --plugin=<string>     - ignored for compatibility
  -h --help             - display this help and exit
  --rsp-quoting         - quoting style for response files
    =posix              -   posix
    =windows            -   windows
  --version             - print the version and exit
  @<file>               - read options from <file>

OPERATIONS:
  d - delete [files] from the archive
  m - move [files] in the archive
  p - print [files] found in the archive
  q - quick append [files] to the archive
  r - replace or insert [files] into the archive
  s - act as ranlib
  t - display contents of archive
  x - extract [files] from the archive

MODIFIERS:
  [a] - put [files] after [relpos]
  [b] - put [files] before [relpos] (same as [i])
  [c] - do not warn if archive had to be created
  [D] - use zero for timestamps and uids/gids (default)
  [h] - display this help and exit
  [i] - put [files] before [relpos] (same as [b])
  [l] - ignored for compatibility
  [L] - add archive's contents
  [N] - use instance [count] of name
  [o] - preserve original dates
  [O] - display member offsets
  [P] - use full names when matching (implied for thin archives)
  [s] - create an archive index (cf. ranlib)
  [S] - do not build a symbol table
  [T] - create a thin archive
  [u] - update only [files] newer than archive contents
  [U] - use actual timestamps and uids/gids
  [v] - be verbose about actions taken
  [V] - display the version and exit

llvm-as
root@kali:~# llvm-as -h
OVERVIEW: llvm .ll -> .bc assembler

USAGE: llvm-as [options] <input .llvm file>

OPTIONS:

Generic Options:

  --help                        - Display available options (--help-hidden for more)
  --help-list                   - Display list of available options (--help-list-hidden for more)
  --version                     - Display the version of this program

llvm-as Options:

  --data-layout=<layout-string> - data layout string to use
  --disable-output              - Disable output
  -f                            - Enable binary output on terminals
  --module-hash                 - Emit module hash
  -o=<filename>                 - Override output filename

llvm-bcanalyzer
root@kali:~# llvm-bcanalyzer -h
OVERVIEW: llvm-bcanalyzer file analyzer

USAGE: llvm-bcanalyzer [options] <input bitcode>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --block-info=<string>                              - Use the BLOCK_INFO from the given file
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --check-hash=<string>                              - Check module hash using the argument as a string table
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-histogram                                - Do not print per-code histogram
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --dump                                             - Dump low level bitcode trace
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --non-symbolic                                     - Emit numeric info in dump even if symbolic info is available
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --show-binary-blobs                                - Print binary blobs using hex escapes
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-c-test
root@kali:~# llvm-c-test -h
llvm-c-test command

 Commands:
  * --module-dump
    Read bitcode from stdin - print disassembly

  * --lazy-module-dump
    Lazily read bitcode from stdin - print disassembly

  * --new-module-dump
    Read bitcode from stdin - print disassembly

  * --lazy-new-module-dump
    Lazily read bitcode from stdin - print disassembly

  * --module-list-functions
    Read bitcode from stdin - list summary of functions

  * --module-list-globals
    Read bitcode from stdin - list summary of globals

  * --targets-list
    List available targets

  * --object-list-sections
    Read object file from stdin - list sections

  * --object-list-symbols
    Read object file from stdin - list symbols (like nm)

  * --disassemble
    Read lines of triple, hex ascii machine code from stdin - print disassembly

  * --calc
    Read lines of name, rpn from stdin - print generated module

  * --echo
    Read bitcode file from stdin - print it back out

  * --test-diagnostic-handler
    Read bitcode file from stdin with a diagnostic handler set

  * --test-dibuilder
    Run tests for the DIBuilder C API - print generated module


llvm-cat
root@kali:~# llvm-cat -h
OVERVIEW: Module concatenation
USAGE: llvm-cat [options] <input  files>

OPTIONS:

Generic Options:

  --help        - Display available options (--help-hidden for more)
  --help-list   - Display list of available options (--help-list-hidden for more)
  --version     - Display the version of this program

llvm-cat Options:

  -b            - Whether to perform binary concatenation
  -o=<filename> - Output filename

llvm-cfi-verify
root@kali:~# llvm-cfi-verify -h
OVERVIEW: Identifies whether Control Flow Integrity protects all indirect control flow instructions in the provided object file, DSO or binary.
Note: Anything statically linked into the provided file *must* be compiled with '-g'. This can be relaxed through the '--ignore-dwarf' flag.
USAGE: llvm-cfi-verify [options] <input file> [blacklist file]

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --blame-context=<uint>                             - Print the blame context (if possible) for BAD instructions. This specifies the number of lines of context to include, where zero disables this feature.
  --blame-context-all=<uint>                         - Prints the blame context (if possible) for ALL instructions. This specifies the number of lines of context for non-BAD instructions (see --blame-context). If --blame-context is unspecified, it prints this number of contextual lines for BAD instructions as well.
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --ignore-dwarf                                     - Ignore all DWARF data. This relaxes the requirements for all statically linked libraries to have been compiled with '-g', but will result in false positives for 'CFI unprotected' instructions.
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --print-graphs                                     - Print graphs around indirect CF instructions in DOT format.
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --search-length-cb=<ulong>                         - Specify the maximum amount of instructions to inspect when searching for a conditional branch from an indirect control flow.
  --search-length-undef=<ulong>                      - Specify the maximum amount of instructions to inspect when searching for an undefined instruction from a conditional branch.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summarize                                        - Print the summary only.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-config
root@kali:~# llvm-config -h
usage: llvm-config <OPTION>... [<COMPONENT>...]

Get various configuration information needed to compile programs which use
LLVM.  Typically called from 'configure' scripts.  Examples:
  llvm-config --cxxflags
  llvm-config --ldflags
  llvm-config --libs engine bcreader scalaropts

Options:
  --version         Print LLVM version.
  --prefix          Print the installation prefix.
  --src-root        Print the source root LLVM was built from.
  --obj-root        Print the object root used to build LLVM.
  --bindir          Directory containing LLVM executables.
  --includedir      Directory containing LLVM headers.
  --libdir          Directory containing LLVM libraries.
  --cmakedir        Directory containing LLVM cmake modules.
  --cppflags        C preprocessor flags for files that include LLVM headers.
  --cflags          C compiler flags for files that include LLVM headers.
  --cxxflags        C++ compiler flags for files that include LLVM headers.
  --ldflags         Print Linker flags.
  --system-libs     System Libraries needed to link against LLVM components.
  --libs            Libraries needed to link against LLVM components.
  --libnames        Bare library names for in-tree builds.
  --libfiles        Fully qualified library filenames for makefile depends.
  --components      List of all possible components.
  --targets-built   List of all targets currently built.
  --host-target     Target triple used to configure LLVM.
  --build-mode      Print build mode of LLVM tree (e.g. Debug or Release).
  --assertion-mode  Print assertion mode of LLVM tree (ON or OFF).
  --build-system    Print the build system used to build LLVM (always cmake).
  --has-rtti        Print whether or not LLVM was built with rtti (YES or NO).
  --has-global-isel Print whether or not LLVM was built with global-isel support (ON or OFF).
  --shared-mode     Print how the provided components can be collectively linked (`shared` or `static`).
  --link-shared     Link the components as shared libraries.
  --link-static     Link the component libraries statically.
  --ignore-libllvm  Ignore libLLVM and link component libraries instead.
Typical components:
  all               All LLVM libraries (default).
  engine            Either a native JIT or a bitcode interpreter.

llvm-cov
root@kali:~# llvm-cov -h
Usage: llvm-cov {export|gcov|report|show} [OPTION]...

Shows code coverage information.

Subcommands:
  export: Export instrprof file to structured format.
  gcov:   Work with the gcov format.
  report: Summarize instrprof style coverage information.
  show:   Annotate source files using instrprof style coverage.

llvm-cvtres
root@kali:~# llvm-cvtres -h
OVERVIEW: Resource Converter

USAGE: llvm-cvtres [options] file...

OPTIONS:
  /DEFINE:symbol     
  /FOLDDUPS:         
  /MACHINE:{ARM|ARM64|EBC|IA64|X64|X86}
                     
  /NOLOGO            
  /OUT:filename      
  /READONLY          
  /TIMESTAMP:<value> Timestamp for coff header, defaults to current time
  /VERBOSE           

llvm-cxxdump
root@kali:~# llvm-cxxdump -h
OVERVIEW: LLVM C++ ABI Data Dumper

USAGE: llvm-cxxdump [options] <input object files>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-cxxfilt
root@kali:~# llvm-cxxfilt -h
OVERVIEW: llvm symbol undecoration tool

USAGE: llvm-cxxfilt [options] <mangled>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --format=<value>                                   - decoration style
    =auto                                            -   auto-detect style
    =gnu                                             -   GNU (itanium) style
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --no-strip-underscore                              - do not strip the leading underscore
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --strip-underscore                                 - strip the leading underscore
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --types                                            - attempt to demangle types as well as function names
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

Pass @FILE as argument to read options from FILE.

llvm-diff
root@kali:~# llvm-diff -h
USAGE: llvm-diff [options] <first file> <second file> <globals to compare>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-dis
root@kali:~# llvm-dis -h
OVERVIEW: llvm .bc -> .ll disassembler

USAGE: llvm-dis [options] <input bitcode>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  -f                                                 - Enable binary output on terminals
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --materialize-metadata                             - Load module without materializing metadata, then materialize only the metadata
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  -o=<filename>                                      - Override output filename
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --show-annotations                                 - Add informational comments to the .ll file
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-dlltool
root@kali:~# llvm-dlltool -h
OVERVIEW: llvm-dlltool

USAGE: llvm-dlltool [options] file...

OPTIONS:
  -D <value> Specify the input DLL Name
  -d <value> Input .def File
  -f <value> Assembler Flags
  -k         Kill @n Symbol from export
  -l <value> Generate an import lib
  -m <value> Set target machine
  -S <value> Assembler

TARGETS: i386, i386:x86-64, arm, arm64

llvm-dwarfdump

Manual page for llvm-dwarfdump 11

root@kali:~# llvm-dwarfdump -h
OVERVIEW: pretty-print DWARF debug information in object files and debug info archives.

USAGE: llvm-dwarfdump [options] <input object files or .dSYM bundles>

OPTIONS:

Color Options:

  --color                    - Use colors in output (default=autodetect)

Generic Options:

  --help                     - Display available options (--help-hidden for more)
  --help-list                - Display list of available options (--help-list-hidden for more)
  --version                  - Display the version of this program

Section-specific Dump Options:
These control which sections are dumped. Where applicable these parameters take an optional =<offset> argument to dump only the entry at the specified offset.

  --all                      - Dump all debug info sections
  --apple-names              - Dump the .apple_names section
  --apple-namespaces         - Dump the .apple_namespaces section
  --apple-objc               - Dump the .apple_objc section
  --apple-types              - Dump the .apple_types section
  --debug-abbrev             - Dump the .debug_abbrev section
  --debug-addr               - Dump the .debug_addr section
  --debug-aranges            - Dump the .debug_aranges section
  --debug-cu-index           - Dump the .debug_cu_index section
  --debug-frame[=<offset>]     - Dump the .debug_frame section
  --debug-gnu-pubnames       - Dump the .debug_gnu_pubnames section
  --debug-gnu-pubtypes       - Dump the .debug_gnu_pubtypes section
  --debug-info[=<offset>]      - Dump the .debug_info section
  --debug-line[=<offset>]      - Dump the .debug_line section
  --debug-line-str           - Dump the .debug_line_str section
  --debug-loc[=<offset>]       - Dump the .debug_loc section
  --debug-loclists[=<offset>]  - Dump the .debug_loclists section
  --debug-macro              - Dump the .debug_macro section
  --debug-names              - Dump the .debug_names section
  --debug-pubnames           - Dump the .debug_pubnames section
  --debug-pubtypes           - Dump the .debug_pubtypes section
  --debug-ranges             - Dump the .debug_ranges section
  --debug-rnglists           - Dump the .debug_rnglists section
  --debug-str                - Dump the .debug_str section
  --debug-str-offsets        - Dump the .debug_str_offsets section
  --debug-tu-index           - Dump the .debug_tu_index section
  --debug-types[=<offset>]     - Dump the .debug_types section
  --eh-frame                 - Alias for -debug-frame
  --gdb-index                - Dump the .gdb_index section

Specific Options:

  --arch=<string>            - Dump debug information for the specified CPU architecture only. Architectures may be specified by name or by number. This option can be specified multiple times, once for each desired architecture.
  --diff                     - Emit diff-friendly output by omitting offsets and addresses.
  --find=<name>              - Search for the exact match for <name> in the accelerator tables and print the matching debug information entries. When no accelerator tables are available, the slower but more complete -name option can be used instead.
  --ignore-case              - Ignore case distinctions when searching.
  --lookup=<address>         - Lookup <address> in the debug information and print out any available file, function, block and line table details.
  --name=<pattern>           - Find and print all debug info entries whose name (DW_AT_name attribute) matches the exact text in <pattern>.  When used with the the -regex option <pattern> is interpreted as a regular expression.
  -o=<filename>              - Redirect output to the specified file.
  --parent-recurse-depth=<N> - Only recurse to a depth of N when displaying parents of debug info entries.
  --quiet                    - Use with -verify to not emit to STDOUT.
  --recurse-depth=<N>        - Only recurse to a depth of N when displaying children of debug info entries.
  --regex                    - Treat any <pattern> strings as regular expressions when searching instead of just as an exact string match.
  --show-children            - Show a debug info entry's children when selectively printing entries.
  --show-form                - Show DWARF form types after the DWARF attribute types.
  --show-parents             - Show a debug info entry's parents when selectively printing entries.
  --show-section-sizes       - Show the sizes of all debug sections, expressed in bytes.
  --statistics               - Emit JSON-formatted debug info quality metrics.
  --summarize-types          - Abbreviate the description of type unit entries.
  --uuid                     - Show the UUID for each architecture.
  --verbose                  - Print more low-level encoding details.
  --verify                   - Verify the DWARF debug info.

Pass @FILE as argument to read options from FILE.

llvm-dwp
root@kali:~# llvm-dwp -h
OVERVIEW: merge split dwarf (.dwo) files

USAGE: llvm-dwp [options] <input files>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --asm-show-inst                                    - Emit internal instruction representation to assembly file
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --dwarf-version=<int>                              - Dwarf version
  --dwarf64                                          - Generate debugging info in the 64-bit DWARF format
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --fatal-warnings                                   - Treat warnings as errors
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --incremental-linker-compatible                    - When used with filetype=obj, emit an object file which can be used with an incremental linker
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --mc-relax-all                                     - When used with filetype=obj, relax all fixups in the emitted object file
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-deprecated-warn                               - Suppress all deprecated warnings
  --no-discriminators                                - Disable generation of discriminator information.
  --no-warn                                          - Suppress all warnings
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

Specific Options:

  -e=<filename>                                      - Specify the executable/library files to get the list of *.dwo from
  -o=<filename>                                      - Specify the output file.

llvm-exegesis
root@kali:~# llvm-exegesis -h
USAGE: llvm-exegesis [options]

OPTIONS:

Color Options:

  --color                                         - Use colors in output (default=autodetect)

General options:

  --debugify-level=<value>                        - Kind of debug info to add
    =locations                                    -   Locations only
    =location+variables                           -   Locations and Variables
  --debugify-quiet                                - Suppress verbose debugify output
  --enable-cse-in-irtranslator                    - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                       - Should enable CSE in Legalizer
  --enable-name-compression                       - Enable name/filename string compression
  --mir-strip-debugify-only                       - Should mir-strip-debug only strip debug info from debugified modules by default
  --x86-align-branch=<string>                     - Specify types of branches to align (plus separated list of types):
                                                    jcc      indicates conditional jumps
                                                    fused    indicates fused conditional jumps
                                                    jmp      indicates direct unconditional jumps
                                                    call     indicates direct and indirect calls
                                                    ret      indicates rets
                                                    indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>              - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries            - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                - Maximum number of prefixes to use for padding

Generic Options:

  --help                                          - Display available options (--help-hidden for more)
  --help-list                                     - Display list of available options (--help-list-hidden for more)
  --version                                       - Display the version of this program

llvm-exegesis analysis options:

  --analysis-clustering=<value>                   - the clustering algorithm to use
    =dbscan                                       -   use DBSCAN/OPTICS algorithm
    =naive                                        -   one cluster per opcode
  --analysis-clustering-epsilon=<number>          - epsilon for benchmark point clustering
  --analysis-clusters-output-file=<string>        - 
  --analysis-display-unstable-clusters            - if there is more than one benchmark for an opcode, said benchmarks may end up not being clustered into the same cluster if the measured performance characteristics are different. by default all such opcodes are filtered out. this flag will instead show only such unstable opcodes
  --analysis-inconsistencies-output-file=<string> - 
  --analysis-inconsistency-epsilon=<number>       - epsilon for detection of when the cluster is different from the LLVM schedule profile values
  --analysis-numpoints=<uint>                     - minimum number of points in an analysis cluster (dbscan only)

llvm-exegesis benchmark options:

  --dump-object-to-disk                           - dumps the generated benchmark object to disk and prints a message to access it
  --ignore-invalid-sched-class                    - ignore instructions that do not define a sched class
  --max-configs-per-opcode=<uint>                 - allow to snippet generator to generate at most that many configs
  --num-repetitions=<uint>                        - number of time to repeat the asm snippet
  --opcode-index=<int>                            - opcode to measure, by index, or -1 to measure all opcodes
  --opcode-name=<string>                          - comma-separated list of opcodes to measure, by name
  --repetition-mode=<value>                       - how to repeat the instruction snippet
    =duplicate                                    -   Duplicate the snippet
    =loop                                         -   Loop over the snippet
    =min                                          -   All of the above and take the minimum of measurements
  --snippets-file=<string>                        - code snippets to measure

llvm-exegesis options:

  --benchmarks-file=<string>                      - File to read (analysis mode) or write (latency/uops/inverse_throughput modes) benchmark results. “-” uses stdin/stdout.
  --mcpu=<string>                                 - cpu name to use for pfm counters, leave empty to autodetect
  --mode=<value>                                  - the mode to run
    =latency                                      -   Instruction Latency
    =inverse_throughput                           -   Instruction Inverse Throughput
    =uops                                         -   Uop Decomposition
    =analysis                                     -   Analysis
  --result-aggregation-mode=<value>               - How to aggregate multi-values result
    =min                                          -   Keep min reading
    =max                                          -   Keep max reading
    =mean                                         -   Compute mean of all readings
    =min-variance                                 -   Keep readings set with min-variance

llvm-extract
root@kali:~# llvm-extract -h
OVERVIEW: llvm extractor

USAGE: llvm-extract [options] <input bitcode file>

OPTIONS:

Generic Options:

  --help                       - Display available options (--help-hidden for more)
  --help-list                  - Display list of available options (--help-list-hidden for more)
  --version                    - Display the version of this program

llvm-extract Options:

  --alias=<alias>              - Specify alias to extract
  --bb=<function:bb1[;bb2...]> - Specify <function, basic block1[;basic block2...]> pairs to extract.
                                 Each pair will create a function.
                                 If multiple basic blocks are specified in one pair,
                                 the first block in the sequence should dominate the rest.
                                 eg:
                                   --bb=f:bb1;bb2 will extract one function with both bb1 and bb2;
                                   --bb=f:bb1 --bb=f:bb2 will extract two functions, one with bb1, one with bb2.
  --delete                     - Delete specified Globals from Module
  -f                           - Enable binary output on terminals
  --func=<function>            - Specify function to extract
  --glob=<global>              - Specify global to extract
  --keep-const-init            - Keep initializers of constants
  -o=<filename>                - Specify output filename
  --ralias=<ralias>            - Specify alias(es) to extract using a regular expression
  --recursive                  - Recursively extract all called functions
  --rfunc=<rfunction>          - Specify function(s) to extract using a regular expression
  --rglob=<rglobal>            - Specify global(s) to extract using a regular expression

llvm-lib

root@kali:~# llvm-link -h
OVERVIEW: llvm linker

USAGE: llvm-link [options] <input bitcode files>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-debug-info-type-map                      - Don't use a uniquing type map for debug info
  --disable-lazy-loading                             - Disable lazy module loading
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  -f                                                 - Enable binary output on terminals
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import=<function:filename>                       - Pair of function name and filename, where function should be imported from bitcode in filename
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize                                      - Internalize linked symbols
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  -o=<filename>                                      - Override output filename
  --only-needed                                      - Link only needed symbols
  --override=<filename>                              - input bitcode file which can override previously defined symbol(s)
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --summary-index=<filename>                         - Module summary index filename
  --suppress-warnings                                - Suppress all linking warnings
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  -v                                                 - Print information about actions taken
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-lto
root@kali:~# llvm-lto -h
OVERVIEW: llvm LTO linker

USAGE: llvm-lto [options] <input bitcode files>

OPTIONS:

Color Options:

  --color                                                              - Use colors in output (default=autodetect)

General options:

  -O=<char>                                                            - Optimization level. [-O0, -O1, -O2, or -O3] (default = '-O2')
  --aarch64-neon-syntax=<value>                                        - Choose style of NEON code to emit from AArch64 backend:
    =generic                                                           -   Emit generic NEON assembly
    =apple                                                             -   Emit Apple-style NEON assembly
  --addrsig                                                            - Emit an address-significance table
  --amdgpu-bypass-slow-div                                             - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                                      - Do not align and prefetch loops
  --amdgpu-disable-power-sched                                         - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                                                 - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                                           - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                                     - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                                             - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>                       - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill                                 - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                                               - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                                         - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                                             - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                                           - 
  --arm-implicit-it=<value>                                            - Allow conditional instructions outdside of an IT block
    =always                                                            -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                                             -   Warn in ARM, reject in Thumb
    =arm                                                               -   Accept in ARM, reject in Thumb
    =thumb                                                             -   Warn in ARM, emit implicit ITs in Thumb
  --asm-show-inst                                                      - Emit internal instruction representation to assembly file
  --atomic-counter-update-promoted                                     - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                                               - Use atomic fetch add for first counter in a function (usually the entry counter)
  --basicblock-sections=<all | <function list (file)> | labels | none> - Emit basic blocks into separate sections
  --bounds-checking-single-trap                                        - Use one trap block per function
  --cfg-hide-deoptimize-paths                                          - 
  --cfg-hide-unreachable-paths                                         - 
  --check-for-objc                                                     - Only check if the module has objective-C defined in it
  --code-model=<value>                                                 - Choose code model
    =tiny                                                              -   Tiny code model
    =small                                                             -   Small code model
    =kernel                                                            -   Kernel code model
    =medium                                                            -   Medium code model
    =large                                                             -   Large code model
  --cost-kind=<value>                                                  - Target cost kind
    =throughput                                                        -   Reciprocal throughput
    =latency                                                           -   Instruction latency
    =code-size                                                         -   Code size
  --cvp-dont-add-nowrap-flags                                          - 
  --data-sections                                                      - Emit data into separate sections
  --debug-entry-values                                                 - Enable debug info for the debug entry values.
  --debugger-tune=<value>                                              - Tune debug info for a particular debugger
    =gdb                                                               -   gdb
    =lldb                                                              -   lldb
    =sce                                                               -   SCE targets (e.g. PS4)
  --debugify-level=<value>                                             - Kind of debug info to add
    =locations                                                         -   Locations only
    =location+variables                                                -   Locations and Variables
  --debugify-quiet                                                     - Suppress verbose debugify output
  --denormal-fp-math=<value>                                           - Select which denormal numbers the code is permitted to require
    =ieee                                                              -   IEEE 754 denormal numbers
    =preserve-sign                                                     -   the sign of a  flushed-to-zero number is preserved in the sign of 0
    =positive-zero                                                     -   denormals are flushed to positive zero
  --denormal-fp-math-f32=<value>                                       - Select which denormal numbers the code is permitted to require for float
    =ieee                                                              -   IEEE 754 denormal numbers
    =preserve-sign                                                     -   the sign of a  flushed-to-zero number is preserved in the sign of 0
    =positive-zero                                                     -   denormals are flushed to positive zero
  --disable-gvn-loadpre                                                - Do not run the GVN load PRE pass
  --disable-inlining                                                   - Do not run the inliner pass
  --disable-lto-vectorization                                          - Do not run loop or slp vectorization during LTO
  --disable-promote-alloca-to-lds                                      - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                                   - Disable promote alloca to vector
  --disable-tail-calls                                                 - Never emit tail calls
  --disable-verify                                                     - Do not run the verifier during the optimization pipeline
  --do-counter-promotion                                               - Do counter register promotion
  --dso-symbol=<string>                                                - Symbol to put in the symtab in the resulting dso
  --dwarf-version=<int>                                                - Dwarf version
  --dwarf64                                                            - Generate debugging info in the 64-bit DWARF format
  --emit-call-site-info                                                - Emit call site debug information, if debug information is enabled.
  --emscripten-cxx-exceptions-allowed=<string>                         - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --emulated-tls                                                       - Use emulated TLS model
  --enable-cse-in-irtranslator                                         - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                                            - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                                   - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                                             - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                                   - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                                  - 
  --enable-gvn-sink                                                    - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                                            - 
  --enable-load-pre                                                    - 
  --enable-loop-simplifycfg-term-folding                               - 
  --enable-name-compression                                            - Enable name/filename string compression
  --enable-no-infs-fp-math                                             - Enable FP math optimizations that assume no +-Infs
  --enable-no-nans-fp-math                                             - Enable FP math optimizations that assume no NaNs
  --enable-no-signed-zeros-fp-math                                     - Enable FP math optimizations that assume the sign of 0 is insignificant
  --enable-no-trapping-fp-math                                         - Enable setting the FP exceptions build attribute not to use exceptions
  --enable-unsafe-fp-math                                              - Enable optimizations that may decrease FP precision
  --exception-model=<value>                                            - exception model
    =default                                                           -   default exception handling model
    =dwarf                                                             -   DWARF-like CFI based exception handling
    =sjlj                                                              -   SjLj exception handling
    =arm                                                               -   ARM EHABI exceptions
    =wineh                                                             -   Windows exception model
    =wasm                                                              -   WebAssembly exception handling
  --exported-symbol=<string>                                           - List of symbols to export from the resulting object file
  --fatal-warnings                                                     - Treat warnings as errors
  --filetype=<value>                                                   - Choose a file type (not all types are supported by all targets):
    =asm                                                               -   Emit an assembly ('.s') file
    =obj                                                               -   Emit a native object ('.o') file
    =null                                                              -   Emit nothing, for performance testing
  --float-abi=<value>                                                  - Choose float ABI type
    =default                                                           -   Target default float ABI type
    =soft                                                              -   Soft float ABI (implied by -soft-float)
    =hard                                                              -   Hard float ABI (uses FP registers)
  --force-dwarf-frame-section                                          - Always emit a debug frame section.
  --fp-contract=<value>                                                - Enable aggressive formation of fused FP ops
    =fast                                                              -   Fuse FP ops whenever profitable
    =on                                                                -   Only fuse 'blessed' FP ops.
    =off                                                               -   Only fuse FP ops when the result won't be affected.
  --frame-pointer=<value>                                              - Specify frame pointer elimination optimization
    =all                                                               -   Disable frame pointer elimination
    =non-leaf                                                          -   Disable frame pointer elimination for non-leaf frame
    =none                                                              -   Enable frame pointer elimination
  --function-sections                                                  - Emit functions into separate sections
  --gpsize=<uint>                                                      - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                                           - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                                     - Enable hot-cold splitting pass
  --import-all-index                                                   - Import all external functions in index.
  --incremental-linker-compatible                                      - When used with filetype=obj, emit an object file which can be used with an incremental linker
  --instcombine-code-sinking                                           - Enable code sinking
  --instcombine-guard-widening-window=<uint>                           - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                                  - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                                    - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                                   - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                                        - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>                               - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all                                - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>                             - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>                                 - A list of symbol names to preserve
  --iterative-counter-promotion                                        - Allow counter promotion across the whole loop nest.
  -j=<uint>                                                            - Number of backend threads
  --list-dependent-libraries-only                                      - Instead of running LTO, list the dependent libraries in each IR file
  --list-symbols-only                                                  - Instead of running LTO, list the symbols in each IR file
  --lto-embed-bitcode                                                  - Embed LLVM bitcode in object files produced by LTO
  --lto-freestanding                                                   - Enable Freestanding (disable builtins / TLI) during LTO
  --lto-pass-remarks-filter=<regex>                                    - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                                   - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>                                 - Output filename for pass remarks
  --march=<string>                                                     - Architecture to generate code for (see --version)
  --matrix-default-layout=<value>                                      - Sets the default matrix layout
    =column-major                                                      -   Use column-major layout
    =row-major                                                         -   Use row-major layout
  --mattr=<a1,+a2,-a3,...>                                             - Target specific attributes (-mattr=help for details)
  --max-counter-promotions=<int>                                       - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>                             - Max number counter promotions per loop to avoid increasing register pressure too much
  --mc-relax-all                                                       - When used with filetype=obj, relax all fixups in the emitted object file
  --mcpu=<cpu-name>                                                    - Target a specific cpu type (-mcpu=help for details)
  --meabi=<value>                                                      - Set EABI type (default depends on triple):
    =default                                                           -   Triple default EABI version
    =4                                                                 -   EABI version 4
    =5                                                                 -   EABI version 5
    =gnu                                                               -   EABI GNU
  --memop-size-large=<uint>                                            - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                                          - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                                         - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                                      - Error for register names that aren't contigious
  --mhvx                                                               - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                                       - Enable Hexagon Vector eXtensions
    =v60                                                               -   Build for HVX v60
    =v62                                                               -   Build for HVX v62
    =v65                                                               -   Build for HVX v65
    =v66                                                               -   Build for HVX v66
    =v67                                                               -   Build for HVX v67
  --mips-compact-branches=<value>                                      - MIPS Specific: Compact branch policy.
    =never                                                             -   Do not use compact branches if possible.
    =optimal                                                           -   Use compact branches where appropriate (default).
    =always                                                            -   Always use compact branches if possible.
  --mips16-constant-islands                                            - Enable mips16 constant islands.
  --mips16-hard-float                                                  - Enable mips16 hard float.
  --mir-strip-debugify-only                                            - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                                       - Disable looking for compound instructions for Hexagon
  --mno-fixup                                                          - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                                      - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                                        - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                                          - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                                       - Warn for register names that arent contigious
  --mwarn-sign-mismatch                                                - Warn for mismatching a signed and unsigned value
  --no-deprecated-warn                                                 - Suppress all deprecated warnings
  --no-discriminators                                                  - Disable generation of discriminator information.
  --no-warn                                                            - Suppress all warnings
  --no-xray-index                                                      - Don't emit xray_fn_idx section
  --nozero-initialized-in-bss                                          - Don't place zero-initialized symbols into bss section
  --nvptx-sched4reg                                                    - NVPTX Specific: schedule for register pressue
  -o=<filename>                                                        - Override output filename
  --poison-checking-function-local                                     - Check that returns are non-poison (for testing)
  --print-macho-cpu-only                                               - Instead of running LTO, print the mach-o cpu in each IR file
  --r600-ir-structurize                                                - Use StructurizeCFG IR pass
  --rdf-dump                                                           - 
  --rdf-limit=<uint>                                                   - 
  --relax-elf-relocations                                              - Emit GOTPCRELX/REX_GOTPCRELX instead of GOTPCREL on x86-64 ELF
  --relocation-model=<value>                                           - Choose relocation model
    =static                                                            -   Non-relocatable code
    =pic                                                               -   Fully relocatable, position independent code
    =dynamic-no-pic                                                    -   Relocatable external references, non-relocatable code
    =ropi                                                              -   Code and read-only data relocatable, accessed PC-relative
    =rwpi                                                              -   Read-write data relocatable, accessed relative to static base
    =ropi-rwpi                                                         -   Combination of ropi and rwpi
  --restore-linkage                                                    - Restore original linkage of globals prior to CodeGen
  --runtime-counter-relocation                                         - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                                   - 
  --sample-profile-check-record-coverage=<N>                           - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>                           - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>                     - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --save-merged-module                                                 - Write merged LTO module to file before CodeGen
  --set-merged-module                                                  - Use the first input module as the merged module
  --speculative-counter-promotion-max-exiting=<uint>                   - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop                              - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --stack-alignment=<uint>                                             - Override default stack alignment
  --stack-size-section                                                 - Emit a section containing stack size metadata
  --stack-symbol-ordering                                              - Order local stack symbols.
  --stackrealign                                                       - Force align the stack to the minimum alignment
  --summary-file=<string>                                              - The summary file to use for function importing.
  --tail-predication=<value>                                           - MVE tail-predication options
    =disabled                                                          -   Don't tail-predicate loops
    =enabled-no-reductions                                             -   Enable tail-predication, but not for reduction loops
    =enabled                                                           -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                                       -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                                     -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --tailcallopt                                                        - Turn fastcc calls into tail calls by (potentially) changing ABI.
  --thinlto                                                            - Only write combined global index for ThinLTO backends
  --thinlto-action=<value>                                             - Perform a single ThinLTO stage:
    =thinlink                                                          -   ThinLink: produces the index by linking only the summaries.
    =distributedindexes                                                -   Produces individual indexes for distributed backends.
    =emitimports                                                       -   Emit imports files for distributed backends.
    =promote                                                           -   Perform pre-import promotion (requires -thinlto-index).
    =import                                                            -   Perform both promotion and cross-module importing (requires -thinlto-index).
    =internalize                                                       -   Perform internalization driven by -exported-symbol (requires -thinlto-index).
    =optimize                                                          -   Perform ThinLTO optimizations.
    =codegen                                                           -   CodeGen (expected to match llc)
    =run                                                               -   Perform ThinLTO end-to-end
  --thinlto-cache-dir=<string>                                         - Enable ThinLTO caching.
  --thinlto-cache-entry-expiration=<uint>                              - Set ThinLTO cache entry expiration time.
  --thinlto-cache-max-size-bytes=<ulong>                               - Set ThinLTO cache pruning directory maximum size in bytes.
  --thinlto-cache-max-size-files=<int>                                 - Set ThinLTO cache pruning directory maximum number of files.
  --thinlto-cache-pruning-interval=<int>                               - Set ThinLTO cache pruning interval.
  --thinlto-index=<string>                                             - Provide the index produced by a ThinLink, required to perform the promotion and/or importing.
  --thinlto-index-stats                                                - Print statistic for the index in every input files
  --thinlto-module-id=<string>                                         - For the module ID for the file to process, useful to match what is in the index.
  --thinlto-prefix-replace=<string>                                    - Control where files for distributed backends are created. Expects 'oldprefix;newprefix' and if path prefix of output file is oldprefix it will be replaced with newprefix.
  --thinlto-save-objects=<string>                                      - Save ThinLTO generated object files using filenames created in the given directory.
  --thinlto-save-temps=<string>                                        - Save ThinLTO temp files using filenames created by adding suffixes to the given file path prefix.
  --thread-model=<value>                                               - Choose threading model
    =posix                                                             -   POSIX thread model
    =single                                                            -   Single thread model
  --threads=<int>                                                      - 
  --tls-size=<uint>                                                    - Bit size of immediate TLS offsets
  --unique-bb-section-names                                            - Give unique names to every basic block section
  --unique-section-names                                               - Give unique names to every section
  --use-ctors                                                          - Use .ctors instead of .init_array.
  --use-diagnostic-handler                                             - Use a diagnostic handler to test the handler interface
  --verify-region-info                                                 - Verify region info (time consuming)
  --vp-counters-per-site=<number>                                      - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                                    - Do static counter allocation for value profiler
  --x86-align-branch=<string>                                          - Specify types of branches to align (plus separated list of types):
                                                                         jcc      indicates conditional jumps
                                                                         fused    indicates fused conditional jumps
                                                                         jmp      indicates direct unconditional jumps
                                                                         call     indicates direct and indirect calls
                                                                         ret      indicates rets
                                                                         indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                                   - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries                                 - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                                     - Maximum number of prefixes to use for padding

Generic Options:

  --help                                                               - Display available options (--help-hidden for more)
  --help-list                                                          - Display list of available options (--help-list-hidden for more)
  --version                                                            - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                                              - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                                             - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                                           - Print memory access functions
  --polly-context=<isl parameter set>                                  - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                                      - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                                         - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                                        - Allow the detection of full functions
  --polly-dump-after                                                   - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                                     - Dump module after Polly transformations to the given file
  --polly-dump-before                                                  - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                                    - Dump module before Polly transformations to the given file
  --polly-enable-simplify                                              - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                                         - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                                           - Option passed to ISL
  --polly-on-isl-error-abort                                           - Abort if an isl error is encountered
  --polly-only-func=<string>                                           - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                                     - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                                          - Only run scop detection, but no other optimizations
  --polly-optimized-scops                                              - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                                     - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                                               - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                                  - Perform optimizations based on pattern matching
  --polly-process-unprofitable                                         - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                                              - Enable register tiling
  --polly-report                                                       - Print information about the activities of Polly
  --polly-show                                                         - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                                    - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                                     - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                                                -   One statement per basic block
    =scalar-indep                                                      -   Scalar independence heuristic
    =store                                                             -   Store-level granularity
  --polly-target=<value>                                               - The hardware to target
    =cpu                                                               -   generate CPU code
  --polly-tiling                                                       - Enable loop tiling
  --polly-vectorizer=<value>                                           - Select the vectorization strategy
    =none                                                              -   No Vectorization
    =polly                                                             -   Polly internal vectorizer
    =stripmine                                                         -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-lto2
root@kali:~# llvm-lto2 -h
Available subcommands: dump-symtab run

llvm-mc

Manual page for llvm-mc 11

root@kali:~# llvm-mc -h
OVERVIEW: llvm machine code playground

USAGE: llvm-mc [options] <input file>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  -I=<directory>                                     - Directory of include files
  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arch=<string>                                    - Target arch to assemble for, see -version for available targets
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --asm-show-inst                                    - Emit internal instruction representation to assembly file
  Action to perform:
      --as-lex                                          - Lex tokens from a .s file
      --assemble                                        - Assemble a .s file (default)
      --disassemble                                     - Disassemble strings of hex bytes
      --mdis                                            - Marked up disassembly of strings of hex bytes
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --compress-debug-sections=<value>                  - Choose DWARF debug sections compression:
    =none                                            -   No compression
    =zlib                                            -   Use zlib compression
    =zlib-gnu                                        -   Use zlib-gnu compression (deprecated)
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --defsym=<string>                                  - Defines a symbol to be an integer constant
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --dwarf-version=<int>                              - Dwarf version
  --dwarf64                                          - Generate debugging info in the 64-bit DWARF format
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --fatal-warnings                                   - Treat warnings as errors
  --fdebug-compilation-dir=<string>                  - Specifies the debug info's compilation dir
  --fdebug-prefix-map=<= separated key-value pairs>  - Map file source paths in debug info
  --filetype=<value>                                 - Choose an output file type:
    =asm                                             -   Emit an assembly ('.s') file
    =null                                            -   Don't emit anything (for timing purposes)
    =obj                                             -   Emit a native object ('.o') file
  -g                                                 - Generate dwarf debugging info for assembly source files
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --incremental-linker-compatible                    - When used with filetype=obj, emit an object file which can be used with an incremental linker
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --large-code-model                                 - Create cfi directives that assume the code might be more than 2gb away
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --main-file-name=<string>                          - Specifies the name we should consider the input file
  --masm-integers                                    - Enable binary and hex masm integers (0b110 and 0ABCh)
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --mattr=<a1,+a2,-a3,...>                           - Target specific attributes (-mattr=help for details)
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --mc-relax-all                                     - When used with filetype=obj, relax all fixups in the emitted object file
  --mcpu=<cpu-name>                                  - Target a specific cpu type (-mcpu=help for details)
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  -n                                                 - Don't assume assembly file starts in the text section
  --no-deprecated-warn                               - Suppress all deprecated warnings
  --no-discriminators                                - Disable generation of discriminator information.
  --no-exec-stack                                    - File doesn't need an exec stack
  --no-warn                                          - Suppress all warnings
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  -o=<filename>                                      - Output filename
  --output-asm-variant=<uint>                        - Syntax variant to use for output printing
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --position-independent                             - Position independent
  --preserve-comments                                - Preserve Comments in outputted assembly
  --print-imm-hex                                    - Prefer hex format for immediate values
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --relax-relocations                                - Emit R_X86_64_GOTPCRELX instead of R_X86_64_GOTPCREL
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --save-temp-labels                                 - Don't discard temporary labels
  --show-encoding                                    - Show instruction encodings
  --show-inst                                        - Show internal instruction representation
  --show-inst-operands                               - Show instructions operands as parsed
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --split-dwarf-file=<filename>                      - DWO output filename
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --triple=<string>                                  - Target triple to assemble for, see -version for available targets
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-mca
root@kali:~# llvm-mca -h
OVERVIEW: llvm machine code performance analyzer.

USAGE: llvm-mca [options] <input file>

OPTIONS:

Generic Options:

  --help                           - Display available options (--help-hidden for more)
  --help-list                      - Display list of available options (--help-list-hidden for more)
  --version                        - Display the version of this program

Tool Options:

  --dispatch=<uint>                - Override the processor dispatch width
  --instruction-tables             - Print instruction tables
  --iterations=<uint>              - Number of iterations to run
  --lqueue=<uint>                  - Size of the load queue
  --march=<string>                 - Target architecture. See -version for available targets
  --mattr=<string>                 - Additional target features.
  --mcpu=<cpu-name>                - Target a specific cpu type (-mcpu=help for details)
  --mtriple=<string>               - Target triple. See -version for available targets
  --noalias                        - If set, assume that loads and stores do not alias
  -o=<filename>                    - Output filename
  --output-asm-variant=<int>       - Syntax variant to use for output printing
  --print-imm-hex                  - Prefer hex format when printing immediate values
  --register-file-size=<uint>      - Maximum number of physical registers which can be used for register mappings
  --squeue=<uint>                  - Size of the store queue

View Options:

  --all-stats                      - Print all hardware statistics
  --all-views                      - Print all views including hardware statistics
  --bottleneck-analysis            - Enable bottleneck analysis (disabled by default)
  --dispatch-stats                 - Print dispatch statistics
  --instruction-info               - Print the instruction info view (enabled by default)
  --register-file-stats            - Print register file statistics
  --resource-pressure              - Print the resource pressure view (enabled by default)
  --retire-stats                   - Print retire control unit statistics
  --scheduler-stats                - Print scheduler statistics
  --show-encoding                  - Print encoding information in the instruction info view
  --timeline                       - Print the timeline view
  --timeline-max-cycles=<uint>     - Maximum number of cycles in the timeline view. Defaults to 80 cycles
  --timeline-max-iterations=<uint> - Maximum number of iterations to print in timeline view

llvm-modextract
root@kali:~# llvm-modextract -h
OVERVIEW: Module extractor
USAGE: llvm-modextract [options] <input bitcode>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  -b                                                 - Whether to perform binary extraction
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  -n=<index>                                         - Index of module to extract
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  -o=<filename>                                      - Output filename
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-mt
root@kali:~# llvm-mt -h
OVERVIEW: Manifest Tool

USAGE: llvm-mt [options] file...

OPTIONS:
  /canonicalize:         Not supported
  /category              Not supported
  /check_for_duplicates: Not supported
  /dll:dll               Not supported
  /hashupdate:file       Not supported
  /hashupdate            Not supported
  /identity:identity     Not supported
  /inputresource:file    Not supported
  /makecdfs:             Not supported
  /managedassemblyname:assembly
                         Not supported
  /manifest manifest     Used to specify each manifest that need to be processed
  /nodependency          Not supported
  /nologo                No effect as this tool never writes copyright data.  Included for parity
  /notify_update         Not supported
  /out:manifest          Name of the output manifest.  If this is skipped and only one manifest is being operated upon by the tool, that manifest is modified in place
  /outputresource:file   Not supported
  /outputresource        Not supported
  /replacements:file     Not supported
  /rgs:script            Not supported
  /tlb:file              Not supported
  /updateresource:file   Not supported
  /validate_file_hashes: Not supported
  /validate_manifest     Not supported
  /verbose               Not supported

llvm-nm
root@kali:~# llvm-nm -h
OVERVIEW: llvm symbol table dumper

USAGE: llvm-nm [options] <input files>

OPTIONS:

Generic Options:

  --help             - Display available options (--help-hidden for more)
  --help-list        - Display list of available options (--help-list-hidden for more)
  --version          - Display the version of this program

llvm-nm Options:

  -B                 - Alias for --format=bsd
  -P                 - Alias for --format=posix
  --add-dyldinfo     - Add symbols from the dyldinfo not already in the symbol table, Mach-O only
  --add-inlinedinfo  - Add symbols from the inlined libraries, TBD(Mach-O) only
  --arch=<string>    - architecture(s) from a Mach-O file to dump
  --debug-syms       - Show all symbols, even debugger only
  --defined-only     - Show only defined symbols
  --demangle         - Demangle C++ symbol names
  --dyldinfo-only    - Show only symbols from the dyldinfo, Mach-O only
  --dynamic          - Display the dynamic symbols instead of normal symbols.
  --extern-only      - Show only external symbols
  --format=<value>   - Specify output format
    =bsd             -   BSD format
    =sysv            -   System V format
    =posix           -   POSIX.2 format
    =darwin          -   Darwin -m format
  --just-symbol-name - Print just the symbol's name
  -m                 - Alias for --format=darwin
  --no-demangle      - Don't demangle symbol names
  --no-dyldinfo      - Don't add any symbols from the dyldinfo, Mach-O only
  --no-llvm-bc       - Disable LLVM bitcode reader
  --no-sort          - Show symbols in order encountered
  --no-weak          - Show only non-weak symbols
  --numeric-sort     - Sort symbols by address
  --portability      - Alias for --format=posix
  --print-armap      - Print the archive map
  --print-file-name  - Precede each symbol with the object file it came from
  --print-size       - Show symbol size as well as address
  --radix=<value>    - Radix (o/d/x) for printing symbol Values
    =d               -   decimal
    =o               -   octal
    =x               -   hexadecimal
  --reverse-sort     - Sort in reverse order
  --size-sort        - Sort symbols by size
  --special-syms     - Do not filter special symbols from the output
  --undefined-only   - Show only undefined symbols
  -x                 - Print symbol entry in hex, Mach-O only

Pass @FILE as argument to read options from FILE.

llvm-objcopy
root@kali:~# llvm-objcopy -h
OVERVIEW: llvm-objcopy tool

USAGE: llvm-objcopy [options] input [output]

OPTIONS:
  --add-gnu-debuglink=debug-file
                          Add a .gnu_debuglink for <debug-file>
  --add-section=section=file
                          Make a section named <section> with the contents of <file>.
  --add-symbol=name=[section:]value[,flags]
                          Add new symbol <name> to .symtab. Accepted flags: global, local, weak, default, hidden, protected, file, section, object, function, indirect-function. Accepted but ignored for compatibility: debug, constructor, warning, indirect, synthetic, unique-object, before.
  --adjust-start <value>  Alias for --change-start
  --allow-broken-links    Allow the tool to remove sections even if it would leave invalid section references. The appropriate sh_link fields will be set to zero.
  --binary-architecture=<value>
                          Ignored for compatibility
  --build-id-link-dir=dir Set directory for --build-id-link-input and --build-id-link-output to <dir>
  --build-id-link-input=suffix
                          Hard-link the input to <dir>/xx/xxx<suffix> name derived from hex build ID
  --build-id-link-output=suffix
                          Hard-link the output to <dir>/xx/xxx<suffix> name derived from hex build ID
  -B <value>              Alias for --binary-architecture
  --change-start=incr     Add <incr> to the start address. Can be specified multiple times, all values will be applied cumulatively.
  --compress-debug-sections=[ zlib | zlib-gnu ]
                          Compress DWARF debug sections using specified style. Supported styles: 'zlib-gnu' and 'zlib'
  --decompress-debug-sections
                          Decompress DWARF debug sections.
  --disable-deterministic-archives
                          Disable deterministic mode when operating on archives (use real values for UIDs, GIDs, and timestamps).
  --discard-all           Remove all local symbols except file and section symbols
  --discard-locals        Remove compiler-generated local symbols, (e.g. symbols starting with .L)
  --dump-section=section=file
                          Dump contents of section named <section> into file <file>
  -D                      Alias for --enable-deterministic-archives
  --enable-deterministic-archives
                          Enable deterministic mode when operating on archives (use zero for UIDs, GIDs, and timestamps).
  --extract-dwo           Remove all sections that are not DWARF .dwo sections from file
  --extract-main-partition
                          Extract main partition from the input file
  --extract-partition=name
                          Extract named partition from input file
  -F <value>              Alias for --target
  --globalize-symbol=symbol
                          Mark <symbol> as global
  --globalize-symbols=filename
                          Reads a list of symbols from <filename> and marks them global.
  -G <value>              Alias for --keep-global-symbol
  -g                      Alias for --strip-debug
  --input-target=<value>  Format of the input file
  -I <value>              Alias for --input-target
  -j <value>              Alias for --only-section
  --keep-file-symbols     Do not remove file symbols
  --keep-global-symbol=symbol
                          Convert all symbols except <symbol> to local. May be repeated to convert all except a set of symbols to local.
  --keep-global-symbols=filename
                          Reads a list of symbols from <filename> and runs as if --keep-global-symbol=<symbol> is set for each one. <filename> contains one symbol per line and may contain comments beginning with '#'. Leading and trailing whitespace is stripped from each line. May be repeated to read symbols from many files.
  --keep-section=section  Keep <section>
  --keep-symbol=symbol    Do not remove symbol <symbol>
  --keep-symbols=filename Reads a list of symbols from <filename> and runs as if --keep-symbol=<symbol> is set for each one. <filename> contains one symbol per line and may contain comments beginning with '#'. Leading and trailing whitespace is stripped from each line. May be repeated to read symbols from many files.
  -K <value>              Alias for --keep-symbol
  --localize-hidden       Mark all symbols that have hidden or internal visibility as local
  --localize-symbol=symbol
                          Mark <symbol> as local
  --localize-symbols=filename
                          Reads a list of symbols from <filename> and marks them local.
  -L <value>              Alias for --localize-symbol
  --new-symbol-visibility=<value>
                          Visibility of symbols generated for binary input or added with --add-symbol unless otherwise specified. The default value is 'default'.
  -N <value>              Alias for --strip-symbol
  --only-keep-debug       Produce a debug file as the output that only preserves contents of sections useful for debugging purposes
  --only-section=section  Remove all but <section>
  --output-target=<value> Format of the output file
  -O <value>              Alias for --output-target
  --prefix-alloc-sections=prefix
                          Add <prefix> to the start of every allocated section name
  --prefix-symbols=prefix Add <prefix> to the start of every symbol name
  --preserve-dates        Preserve access and modification timestamps
  -p                      Alias for --preserve-dates
  --redefine-sym=old=new  Change the name of a symbol old to new
  --redefine-syms=filename
                          Reads a list of symbol pairs from <filename> and runs as if --redefine-sym=<old>=<new> is set for each one. <filename> contains two symbols per line separated with whitespace and may contain comments beginning with '#'. Leading and trailing whitespace is stripped from each line. May be repeated to read symbols from many files.
  --regex                 Permit regular expressions in name comparison
  --remove-section=section
                          Remove <section>
  --rename-section=old=new[,flag1,...]
                          Renames a section from old to new, optionally with specified flags. Flags supported for GNU compatibility: alloc, load, noload, readonly, debug, code, data, rom, share, contents, merge, strings.
  -R <value>              Alias for --remove-section
  --set-section-alignment=section=align
                          Set alignment for a given section.
  --set-section-flags=section=flag1[,flag2,...]
                          Set section flags for a given section. Flags supported for GNU compatibility: alloc, load, noload, readonly, debug, code, data, rom, share, contents, merge, strings.
  --set-start=addr        Set the start address to <addr>. Overrides any previous --change-start or --adjust-start values.
  --split-dwo=dwo-file    Equivalent to extract-dwo on the input file to <dwo-file>, then strip-dwo on the input file
  --strip-all-gnu         Compatible with GNU's --strip-all
  --strip-all             Remove non-allocated sections outside segments. .gnu.warning* and .ARM.attribute sections are not removed
  --strip-debug           Remove all debug sections
  --strip-dwo             Remove all DWARF .dwo sections from file
  --strip-non-alloc       Remove all non-allocated sections outside segments
  --strip-sections        Remove all section headers and all sections not in segments
  --strip-symbol=symbol   Strip <symbol>
  --strip-symbols=filename
                          Reads a list of symbols from <filename> and removes them.
  --strip-unneeded-symbol=symbol
                          Remove symbol <symbol> if it is not needed by relocations
  --strip-unneeded-symbols=filename
                          Reads a list of symbols from <filename> and removes them if they are not needed by relocations
  --strip-unneeded        Remove all symbols not needed by relocations
  -S                      Alias for --strip-all
  --target=<value>        Format of the input and output file
  -U                      Alias for --disable-deterministic-archives
  --version               Print the version and exit.
  -V                      Alias for --version
  --weaken-symbol=symbol  Mark <symbol> as weak
  --weaken-symbols=filename
                          Reads a list of symbols from <filename> and marks them weak.
  --weaken                Mark all global symbols as weak
  --wildcard              Allow wildcard syntax for symbol-related flags. Incompatible with --regex. Allows using '*' to match any number of characters, '?' to match any single character, '' to escape special characters, and '[]' to define character classes. Wildcards beginning with '!' will prevent a match, for example "-N '*' -N '!x'" will strip all symbols except for "x".
  -W <value>              Alias for --weaken-symbol
  -w                      Alias for --wildcard
  -X                      Alias for --discard-locals
  -x                      Alias for --discard-all

Pass @FILE as argument to read options from FILE.

llvm-objdump

Manual page for llvm-objdump 11

root@kali:~# llvm-objdump --help
OVERVIEW: llvm object file dumper

USAGE: llvm-objdump [options] <input object files>

OPTIONS:

Generic Options:

  --help                           - Display available options (--help-hidden for more)
  --help-list                      - Display list of available options (--help-list-hidden for more)
  --version                        - Display the version of this program

llvm-objdump MachO Specific Options:

  --arch=<string>                  - architecture(s) from a Mach-O file to dump
  --archive-member-offsets         - Print the offset to each archive member for Mach-O archives (requires -macho and -archive-headers)
  --bind                           - Display mach-o binding info
  --data-in-code                   - Print the data in code table for Mach-O objects (requires -macho)
  --dis-symname=<string>           - disassemble just this symbol's instructions (requires -macho)
  --dsym=<string>                  - Use .dSYM file for debug info
  --dylib-id                       - Print the shared library's id for the dylib Mach-O file (requires -macho)
  --dylibs-used                    - Print the shared libraries used for linked Mach-O files (requires -macho)
  --exports-trie                   - Display mach-o exported symbols
  --full-leading-addr              - Print full leading address
  -g                               - Print line information from debug info if available
  --indirect-symbols               - Print indirect symbol table for Mach-O objects (requires -macho)
  --info-plist                     - Print the info plist section as strings for Mach-O objects (requires -macho)
  --lazy-bind                      - Display mach-o lazy binding info
  --link-opt-hints                 - Print the linker optimization hints for Mach-O objects (requires -macho)
  --no-leading-headers             - Print no leading headers
  --no-symbolic-operands           - do not symbolic operands when disassembling (requires -macho)
  --non-verbose                    - Print the info for Mach-O objects in non-verbose or numeric form (requires -macho)
  --objc-meta-data                 - Print the Objective-C runtime meta data for Mach-O files (requires -macho)
  --private-header                 - Display only the first format specific file header
  --rebase                         - Display mach-o rebasing info
  --universal-headers              - Print Mach-O universal headers (requires -macho)
  --weak-bind                      - Display mach-o weak binding info

llvm-objdump Options:

  -C                               - Alias for --demangle
  -D                               - Alias for --disassemble-all
  -M                               - Alias for --disassembler-options
  -R                               - Alias for --dynamic-reloc
  -S                               - Alias for -source
  -T                               - Alias for --dynamic-syms
  -a                               - Alias for --archive-headers
  --adjust-vma=<offset>            - Increase the displayed address by the specified offset
  --all-headers                    - Display all available header information
  --arch-name=<string>             - Target arch to disassemble for, see -version for available targets
  --archive-headers                - Display archive header information
  -d                               - Alias for --disassemble
  --debug-vars                     - Print the locations (in registers or memory) of source-level variables alongside disassembly
  --debug-vars=<value>             - Print the locations (in registers or memory) of source-level variables alongside disassembly
    =<empty>                       -   unicode
    =unicode                       -   unicode
    =ascii                         -   unicode
  --debug-vars-indent=<int>        - Distance to indent the source-level variable display, relative to the start of the disassembly
  --demangle                       - Demangle symbols names
  --disassemble                    - Display assembler mnemonics for the machine instructions
  --disassemble-all                - Display assembler mnemonics for the machine instructions
  --disassemble-symbols=<string>   - List of symbols to disassemble. Accept demangled names when --demangle is specified, otherwise accept mangled names
  --disassemble-zeroes             - Do not skip blocks of zeroes when disassembling
  --disassembler-options=<options> - Pass target specific disassembler options
  --dwarf=<value>                  - Dump of dwarf debug sections:
    =frames                        -   .debug_frame
  --dynamic-reloc                  - Display the dynamic relocation entries in the file
  --dynamic-syms                   - Display the contents of the dynamic symbol table
  -f                               - Alias for --file-headers
  --fault-map-section              - Display contents of faultmap section
  --file-headers                   - Display the contents of the overall file header
  --full-contents                  - Display the content of each section
  -h                               - Alias for --section-headers
  --headers                        - Alias for --section-headers
  -j                               - Alias for --section
  -l                               - Alias for --line-numbers
  --line-numbers                   - Display source line numbers with disassembly. Implies disassemble object
  -m                               - Alias for --macho
  --macho                          - Use MachO specific object file parser
  --mattr=<a1,+a2,-a3,...>         - Target specific attributes
  --mcpu=<cpu-name>                - Target a specific cpu type (-mcpu=help for details)
  --no-leading-addr                - Print no leading address
  --no-show-raw-insn               - When disassembling instructions, do not print the instruction bytes.
  -p                               - Alias for --private-headers
  --print-imm-hex                  - Use hex format for immediate values
  --private-headers                - Display format specific file headers
  -r                               - Alias for --reloc
  --raw-clang-ast                  - Dump the raw binary contents of the clang AST section
  --reloc                          - Display the relocation entries in the file
  -s                               - Alias for --full-contents
  --section=<string>               - Operate on the specified sections only. With -macho dump segment,section
  --section-headers                - Display summaries of the headers for each section.
  --show-lma                       - Display LMA column when dumping ELF section headers
  --source                         - Display source inlined with disassembly. Implies disassemble object
  --start-address=<address>        - Disassemble beginning at address
  --stop-address=<address>         - Stop disassembly at address
  --symbol-description             - Add symbol description for disassembly. This option is for XCOFF files only
  --syms                           - Display the symbol table
  -t                               - Alias for --syms
  --triple=<string>                - Target triple to disassemble for, see -version for available targets
  -u                               - Alias for --unwind-info
  --unwind-info                    - Display unwind information
  --wide                           - Ignored for compatibility with GNU objdump
  -x                               - Alias for --all-headers
  -z                               - Alias for --disassemble-zeroes

Pass @FILE as argument to read options from FILE.

llvm-opt-report
root@kali:~# llvm-opt-report -h
OVERVIEW: A tool to generate an optimization report from YAML optimization record files.

USAGE: llvm-opt-report [options] <input>

OPTIONS:

Generic Options:

  --help            - Display available options (--help-hidden for more)
  --help-list       - Display list of available options (--help-list-hidden for more)
  --version         - Display the version of this program

llvm-opt-report options:

  --format=<string> - The format of the remarks.
  --no-demangle     - Don't demangle function names
  -o=<string>       - Output file
  -r=<string>       - Root for relative input paths
  -s                - Don't include vectorization factors, etc.

llvm-pdbutil
root@kali:~# llvm-pdbutil -h
OVERVIEW: LLVM PDB Dumper

USAGE: llvm-pdbutil [subcommand] [options]

SUBCOMMANDS:

  bytes    - Dump raw bytes from the PDB file
  diadump  - Dump debug information using a DIA-like API
  dump     - Dump MSF and CodeView debug info
  explain  - Explain the meaning of a file offset
  export   - Write binary data from a stream to a file
  merge    - Merge multiple PDBs into a single PDB
  pdb2yaml - Generate a detailed YAML description of a PDB File
  pretty   - Dump semantic information about types and symbols
  yaml2pdb - Generate a PDB file from a YAML description

  Type "llvm-pdbutil <subcommand> --help" to get more help on a specific subcommand

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-profdata
root@kali:~# llvm-profdata -h
OVERVIEW: LLVM profile data tools

USAGE: llvm-profdata <command> [args...]
USAGE: llvm-profdata <command> -help

See each individual command --help for more details.
Available commands: merge, show, overlap

llvm-ranlib

Manual page for llvm-ranlib 11

root@kali:~# llvm-ranlib -h
OVERVIEW: LLVM Ranlib (llvm-ranlib)

  This program generates an index to speed access to archives

USAGE: llvm-ranlib <archive-file>

OPTIONS:
  -h --help             - Display available options
  -v --version          - Display the version of this program
  -D                    - Use zero for timestamps and uids/gids (default)
  -U                    - Use actual timestamps and uids/gids

llvm-rc
root@kali:~# llvm-rc -h
OVERVIEW: Resource Converter

USAGE: rc [options] file...

OPTIONS:
  /?          Display this help and exit.
  /C <value>  Set the codepage used for input strings.
  /dry-run    Don't compile the input; only try to parse it.
  /D <value>  Define a symbol for the C preprocessor.
  /FO <value> Change the output file location.
  /H          Display this help and exit.
  /I <value>  Add an include path.
  /LN <value> Set the default language name.
  /L <value>  Set the default language identifier.
  /N          Null-terminate all strings in the string table.
  /U <value>  Undefine a symbol for the C preprocessor.
  /V          Be verbose.
  /X          Ignore 'include' variable.
  /Y          Suppress warnings on duplicate resource IDs.

llvm-readelf
root@kali:~# llvm-readelf --help
OVERVIEW: LLVM Object Reader

USAGE: llvm-readelf [options] <input object files>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  -A                                                 - Alias for --arch-specific
  -C                                                 - Alias for --demangle
  -S                                                 - Alias for --section-headers
  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --addrsig                                          - Display address-significance table
  --all                                              - Equivalent to setting: --file-headers, --program-headers, --section-headers, --symbols, --relocations, --dynamic-table, --notes, --version-info, --unwind, --section-groups and --elf-hash-histogram.
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arch-specific                                    - Displays architecture-specific information, if there is any.
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cg-profile                                       - Display callgraph profile section
  --codeview                                         - Display CodeView debug information
  --codeview-ghash                                   - Enable global hashing for CodeView type stream de-duplication
  --codeview-merged-types                            - Display the merged CodeView type stream
  --codeview-subsection-bytes                        - Dump raw contents of codeview debug sections and records
  --coff-basereloc                                   - Display the PE/COFF .reloc section
  --coff-debug-directory                             - Display the PE/COFF debug directory
  --coff-directives                                  - Display the PE/COFF .drectve section
  --coff-exports                                     - Display the PE/COFF export table
  --coff-imports                                     - Display the PE/COFF import table
  --coff-load-config                                 - Display the PE/COFF load config
  --coff-resources                                   - Display the PE/COFF .rsrc section
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  -d                                                 - Alias for --dynamic-table
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --demangle                                         - Demangle symbol names in output
  --dependent-libraries                              - Display the dependent libraries section
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --dyn-relocations                                  - Display the dynamic relocation entries in the file
  --dyn-symbols                                      - Display the dynamic symbol table
  --dynamic-table                                    - Display the ELF .dynamic section table
  --elf-hash-histogram                               - Display bucket list histogram for hash sections
  --elf-linker-options                               - Display the ELF .linker-options section
  --elf-output-style=<value>                         - Specify ELF dump style
    =LLVM                                            -   LLVM default style
    =GNU                                             -   GNU readelf style
  --elf-section-groups                               - Display ELF section group contents
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --expand-relocs                                    - Expand each shown relocation to multiple lines
  --file-headers                                     - Display file headers 
  --gnu-hash-table                                   - Display ELF .gnu.hash section
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  -h                                                 - Alias for --file-headers
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hash-symbols                                     - Display the dynamic symbols derived from the hash section
  --hash-table                                       - Display ELF hash table
  --headers                                          - Equivalent to setting: --file-headers, --program-headers, --section-headers
  --hex-dump=<string>                                - <number|name>
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  -l                                                 - Alias for --program-headers
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --macho-data-in-code                               - Display MachO Data in Code command
  --macho-dysymtab                                   - Display MachO Dysymtab command
  --macho-indirect-symbols                           - Display MachO indirect symbols
  --macho-linker-options                             - Display MachO linker options
  --macho-segment                                    - Display MachO Segment command
  --macho-version-min                                - Display MachO version min command
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --needed-libs                                      - Display the needed libraries
  --no-discriminators                                - Disable generation of discriminator information.
  --notes                                            - Display the ELF notes in the file
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --program-headers                                  - Display ELF program headers
  -r                                                 - Alias for --relocations
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --raw-relr                                         - Do not decode relocations in SHT_RELR section, display raw contents
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --relocations                                      - Display the relocation entries in the file
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  -s                                                 - Alias for --symbols
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --section-data                                     - Display section data for each section shown.
  --section-headers                                  - Display all section headers.
  --section-mapping                                  - Display the section to segment mapping.
  --section-relocations                              - Display relocations for each section shown.
  --section-symbols                                  - Display symbols for each section shown.
  --sections                                         - Alias for --section-headers
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --stack-sizes                                      - Display contents of all stack sizes sections
  --stackmap                                         - Display contents of stackmap section
  --string-dump=<string>                             - <number|name>
  --summary-file=<string>                            - The summary file to use for function importing.
  --symbols                                          - Display the symbol table. Also display the dynamic symbol table when using GNU output style for ELF
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --unwind                                           - Display unwind information
  --verify-region-info                               - Verify region info (time consuming)
  --version-info                                     - Display ELF version sections (if present)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

Pass @FILE as argument to read options from FILE.

llvm-readobj
root@kali:~# llvm-readobj --help
OVERVIEW: LLVM Object Reader

USAGE: llvm-readobj [options] <input object files>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  -A                                                 - Alias for --arch-specific
  -C                                                 - Alias for --demangle
  -S                                                 - Alias for --section-headers
  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --addrsig                                          - Display address-significance table
  --all                                              - Equivalent to setting: --file-headers, --program-headers, --section-headers, --symbols, --relocations, --dynamic-table, --notes, --version-info, --unwind, --section-groups and --elf-hash-histogram.
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arch-specific                                    - Displays architecture-specific information, if there is any.
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cg-profile                                       - Display callgraph profile section
  --codeview                                         - Display CodeView debug information
  --codeview-ghash                                   - Enable global hashing for CodeView type stream de-duplication
  --codeview-merged-types                            - Display the merged CodeView type stream
  --codeview-subsection-bytes                        - Dump raw contents of codeview debug sections and records
  --coff-basereloc                                   - Display the PE/COFF .reloc section
  --coff-debug-directory                             - Display the PE/COFF debug directory
  --coff-directives                                  - Display the PE/COFF .drectve section
  --coff-exports                                     - Display the PE/COFF export table
  --coff-imports                                     - Display the PE/COFF import table
  --coff-load-config                                 - Display the PE/COFF load config
  --coff-resources                                   - Display the PE/COFF .rsrc section
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  -d                                                 - Alias for --dynamic-table
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --demangle                                         - Demangle symbol names in output
  --dependent-libraries                              - Display the dependent libraries section
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --dyn-relocations                                  - Display the dynamic relocation entries in the file
  --dyn-symbols                                      - Display the dynamic symbol table
  --dynamic-table                                    - Display the ELF .dynamic section table
  --elf-hash-histogram                               - Display bucket list histogram for hash sections
  --elf-linker-options                               - Display the ELF .linker-options section
  --elf-output-style=<value>                         - Specify ELF dump style
    =LLVM                                            -   LLVM default style
    =GNU                                             -   GNU readelf style
  --elf-section-groups                               - Display ELF section group contents
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --expand-relocs                                    - Expand each shown relocation to multiple lines
  --file-headers                                     - Display file headers 
  --gnu-hash-table                                   - Display ELF .gnu.hash section
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  -h                                                 - Alias for --file-headers
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hash-symbols                                     - Display the dynamic symbols derived from the hash section
  --hash-table                                       - Display ELF hash table
  --headers                                          - Equivalent to setting: --file-headers, --program-headers, --section-headers
  --hex-dump=<string>                                - <number|name>
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  -l                                                 - Alias for --program-headers
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --macho-data-in-code                               - Display MachO Data in Code command
  --macho-dysymtab                                   - Display MachO Dysymtab command
  --macho-indirect-symbols                           - Display MachO indirect symbols
  --macho-linker-options                             - Display MachO linker options
  --macho-segment                                    - Display MachO Segment command
  --macho-version-min                                - Display MachO version min command
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --needed-libs                                      - Display the needed libraries
  --no-discriminators                                - Disable generation of discriminator information.
  --notes                                            - Display the ELF notes in the file
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --program-headers                                  - Display ELF program headers
  -r                                                 - Alias for --relocations
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --raw-relr                                         - Do not decode relocations in SHT_RELR section, display raw contents
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --relocations                                      - Display the relocation entries in the file
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  -s                                                 - Alias for --section-headers
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --section-data                                     - Display section data for each section shown.
  --section-headers                                  - Display all section headers.
  --section-mapping                                  - Display the section to segment mapping.
  --section-relocations                              - Display relocations for each section shown.
  --section-symbols                                  - Display symbols for each section shown.
  --sections                                         - Alias for --section-headers
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --stack-sizes                                      - Display contents of all stack sizes sections
  --stackmap                                         - Display contents of stackmap section
  --string-dump=<string>                             - <number|name>
  --summary-file=<string>                            - The summary file to use for function importing.
  --symbols                                          - Display the symbol table. Also display the dynamic symbol table when using GNU output style for ELF
  -t                                                 - Alias for --symbols
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --unwind                                           - Display unwind information
  --verify-region-info                               - Verify region info (time consuming)
  --version-info                                     - Display ELF version sections (if present)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

Pass @FILE as argument to read options from FILE.

llvm-rtdyld

Manual page for llvm-rtdyld 11

root@kali:~# llvm-rtdyld -h
OVERVIEW: llvm MC-JIT tool

USAGE: llvm-rtdyld [options] <input files> --args <program arguments>...

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --args <string>...                                 - <program arguments>...
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --check=<string>                                   - File containing RuntimeDyld verifier checks.
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --dylib=<string>                                   - Add library.
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --entry=<string>                                   - Function to call as entry point.
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --mcpu=<cpu-name>                                  - Target a specific cpu type (-mcpu=help for details)
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --preallocate=<ulong>                              - Allocate memory upfront rather than on-demand
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --show-times                                       - Show times for llvm-rtdyld phases
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --triple=<string>                                  - Target triple for disassembler
  Action to perform:
      --execute                                         - Load, link, and execute the inputs.
      --printline                                       - Load, link, and print line information for each function.
      --printdebugline                                  - Load, link, and print line information for each function using the debug object
      --printobjline                                    - Like -printlineinfo but does not load the object first
      --verify                                          - Load, link and verify the resulting memory image.
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-size

Manual page for llvm-size 11

root@kali:~# llvm-size -h
OVERVIEW: llvm object size dumper

USAGE: llvm-size [options] <input files>

OPTIONS:

Generic Options:

  --help           - Display available options (--help-hidden for more)
  --help-list      - Display list of available options (--help-list-hidden for more)
  --version        - Display the version of this program

llvm-size Options:

  Specify output format
      -A             - System V format
      -B             - Berkeley format
      -m             - Darwin -m format
  --arch=<string>  - architecture(s) from a Mach-O file to dump
  --common         - Print common symbols in the ELF file.  When using Berkeley format, this is added to bss.
  --format=<value> - Specify output format
    =sysv          -   System V format
    =berkeley      -   Berkeley format
    =darwin        -   Darwin -m format
  -l               - When format is darwin, use long format to include addresses and offsets.
  Print size in radix:
      -o             - Print size in octal
      -d             - Print size in decimal
      -x             - Print size in hexadecimal
  --radix=<value>  - Print size in radix
    =8             -   Print size in octal
    =10            -   Print size in decimal
    =16            -   Print size in hexadecimal
  --totals         - Print totals of all objects - Berkeley format only

Pass @FILE as argument to read options from FILE.

llvm-split
root@kali:~# llvm-split -h
OVERVIEW: LLVM module splitter

USAGE: llvm-split [options] <input bitcode file>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  -j=<uint>                                          - Number of output files
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  -o=<filename>                                      - Override output filename
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --preserve-locals                                  - Split without externalizing locals
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-stress
root@kali:~# llvm-stress -h
OVERVIEW: llvm codegen stress-tester

USAGE: llvm-stress [options]

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  -o=<filename>                                      - Override output filename
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --seed=<uint>                                      - Seed used for randomness
  --size=<uint>                                      - The estimated size of the generated function (# of instrs)
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --types=<IR scalar type>                           - Additional IR scalar types (always includes i1, i8, i16, i32, i64, float and double)
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-strings
root@kali:~# llvm-strings -h
OVERVIEW: llvm string dumper

USAGE: llvm-strings [options] <input object files>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --all                                              - Check all sections, not just the data section
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --bytes=<int>                                      - Print sequences of the specified length
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --print-file-name                                  - Print the name of the file before each string
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --radix=<value>                                    - print the offset within the file
    =o                                               -   octal
    =x                                               -   hexadecimal
    =d                                               -   decimal
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

Pass @FILE as argument to read options from FILE.

llvm-strip
root@kali:~# llvm-strip -h
OVERVIEW: llvm-strip tool

USAGE: llvm-strip [options] inputs...

OPTIONS:
  --allow-broken-links   Allow the tool to remove sections even if it would leave invalid section references. The appropriate sh_link fields will be set to zero.
  --disable-deterministic-archives
                         Disable deterministic mode when operating on archives (use real values for UIDs, GIDs, and timestamps).
  --discard-all          Remove all local symbols except file and section symbols
  --discard-locals       Remove compiler-generated local symbols, (e.g. symbols starting with .L)
  -D                     Alias for --enable-deterministic-archives
  -d                     Alias for --strip-debug
  --enable-deterministic-archives
                         Enable deterministic mode when operating on archives (use zero for UIDs, GIDs, and timestamps).
  -g                     Alias for --strip-debug
  --keep-file-symbols    Do not remove file symbols
  --keep-section=section Keep <section>
  --keep-symbol=symbol   Do not remove symbol <symbol>
  -K <value>             Alias for --keep-symbol
  --no-strip-all         Disable --strip-all
  -N <value>             Alias for --strip-symbol
  --only-keep-debug      Produce a debug file as the output that only preserves contents of sections useful for debugging purposes
  -o <file>              Write output to <file>
  --preserve-dates       Preserve access and modification timestamps
  -p                     Alias for --preserve-dates
  --regex                Permit regular expressions in name comparison
  --remove-section=section
                         Remove <section>
  -R <value>             Alias for --remove-section
  --strip-all-gnu        Compatible with GNU's --strip-all
  --strip-all            Remove non-allocated sections outside segments. .gnu.warning* and .ARM.attribute sections are not removed
  --strip-debug          Remove all debug sections
  --strip-sections       Remove all section headers and all sections not in segments
  --strip-symbol=symbol  Strip <symbol>
  --strip-unneeded       Remove all symbols not needed by relocations
  -S                     Alias for --strip-debug
  -s                     Alias for --strip-all
  -T                     Remove Swift symbols
  -U                     Alias for --disable-deterministic-archives
  --version              Print the version and exit.
  -V                     Alias for --version
  --wildcard             Allow wildcard syntax for symbol-related flags. Incompatible with --regex. Allows using '*' to match any number of characters, '?' to match any single character, '' to escape special characters, and '[]' to define character classes. Wildcards beginning with '!' will prevent a match, for example "-N '*' -N '!x'" will strip all symbols except for "x".
  -w                     Alias for --wildcard
  -X                     Alias for --discard-locals
  -x                     Alias for --discard-all

Pass @FILE as argument to read options from FILE.

llvm-symbolizer
root@kali:~# llvm-symbolizer -h
OVERVIEW: llvm-symbolizer

USAGE: llvm-symbolizer [options] <input addresses>...

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  -C                                                 - Alias for -demangle
  -a                                                 - Alias for -print-address
  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --addresses                                        - Alias for -print-address
  --adjust-vma=<offset>                              - Add specified offset to object file addresses
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --basenames                                        - Strip directory names from paths
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debug-file-directory=<dir>                       - Path to directory where to look for debug files.
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --default-arch=<string>                            - Default architecture (for multi-arch objects)
  --demangle                                         - Demangle function names
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --dsym-hint=<string>                               - Path to .dSYM bundles to search for debug info for the object files
  --dwp=<string>                                     - Path to DWP file to be use for any split CUs
  -e                                                 - Alias for -obj
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --exe                                              - Alias for -obj
  -f                                                 - Alias for -functions
  --fallback-debug-path=<string>                     - Fallback path for debug binaries.
  --functions                                        - Print function name for a given address
  --functions=<value>                                - Print function name for a given address
    =none                                            -   omit function name
    =short                                           -   print short function name
    =linkage                                         -   print function linkage name
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  -i                                                 - Alias for -inlining
  --import-all-index                                 - Import all external functions in index.
  --inlines                                          - Alias for -inlining
  --inlining                                         - Print all inlined frames for a given address
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-demangle                                      - Don't demangle function names
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --obj=<string>                                     - Path to object file to be symbolized (if not provided, object file should be specified for each input line)
  --output-style=<value>                             - Specify print style
    =LLVM                                            -   LLVM default style
    =GNU                                             -   GNU addr2line style
  -p                                                 - Alias for -pretty-print
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --pretty-print                                     - Make the output more human friendly
  --print-address                                    - Show address before line information
  --print-source-context-lines=<int>                 - Print N number of source file context
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --relativenames                                    - Strip the compilation directory from paths
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  -s                                                 - Alias for -basenames
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --untag-addresses                                  - Remove memory tags from addresses before symbolization
  --use-native-pdb-reader                            - Use native PDB functionality
  --use-symbol-table                                 - Prefer names in symbol table to names in debug info
  --verbose                                          - Print verbose line info
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

Pass @FILE as argument to read options from FILE.

llvm-tblgen
root@kali:~# llvm-tblgen -h
USAGE: llvm-tblgen [options] <input file>

OPTIONS:

Color Options:

  --color                            - Use colors in output (default=autodetect)

General options:

  -D=<macro name>                    - Name of the macro to be defined
  -I=<directory>                     - Directory of include files
  -d=<filename>                      - Dependency filename
  Action to perform:
      --print-records                   - Print all records to stdout (default)
      --dump-json                       - Dump all records as machine-readable JSON
      --gen-emitter                     - Generate machine code emitter
      --gen-register-info               - Generate registers and register classes info
      --gen-instr-info                  - Generate instruction descriptions
      --gen-instr-docs                  - Generate instruction documentation
      --gen-callingconv                 - Generate calling convention descriptions
      --gen-asm-writer                  - Generate assembly writer
      --gen-disassembler                - Generate disassembler
      --gen-pseudo-lowering             - Generate pseudo instruction lowering
      --gen-compress-inst-emitter       - Generate RISCV compressed instructions.
      --gen-asm-matcher                 - Generate assembly instruction matcher
      --gen-dag-isel                    - Generate a DAG instruction selector
      --gen-dfa-packetizer              - Generate DFA Packetizer for VLIW targets
      --gen-fast-isel                   - Generate a "fast" instruction selector
      --gen-subtarget                   - Generate subtarget enumerations
      --gen-intrinsic-enums             - Generate intrinsic enums
      --gen-intrinsic-impl              - Generate intrinsic information
      --print-enums                     - Print enum values for a class
      --print-sets                      - Print expanded sets for testing DAG exprs
      --gen-opt-parser-defs             - Generate option definitions
      --gen-opt-rst                     - Generate option RST
      --gen-ctags                       - Generate ctags-compatible index
      --gen-attrs                       - Generate attributes
      --gen-searchable-tables           - Generate generic binary-searchable table
      --gen-global-isel                 - Generate GlobalISel selector
      --gen-global-isel-combiner        - Generate GlobalISel combiner
      --gen-x86-EVEX2VEX-tables         - Generate X86 EVEX to VEX compress tables
      --gen-x86-fold-tables             - Generate X86 fold tables
      --gen-register-bank               - Generate registers bank descriptions
      --gen-exegesis                    - Generate llvm-exegesis tables
      --gen-automata                    - Generate generic automata
      --gen-directive-decl              - Generate directive related declaration code (header file)
      --gen-directive-impl              - Generate directive related implementation code
      --gen-directive-gen               - Generate directive related implementation code part
  -o=<filename>                      - Output filename
  --time-regions                     - Time regions of tablegens execution
  --write-if-changed                 - Only write output if it changed

Generic Options:

  --help                             - Display available options (--help-hidden for more)
  --help-list                        - Display list of available options (--help-list-hidden for more)
  --version                          - Display the version of this program

Options for -gen-asm-matcher:

  --match-prefix=<string>            - Only match instructions with the given prefix

Options for -gen-asm-parser:

  --asmparsernum=<uint>              - Make -gen-asm-parser emit assembly parser #N

Options for -gen-asm-writer:

  --asmwriternum=<uint>              - Make -gen-asm-writer emit assembly writer #N

Options for -gen-dag-isel:

  --instrument-coverage              - Generates tables to help identify patterns matched
  --omit-comments                    - Do not generate comments

Options for -gen-global-isel:

  --gisel-coverage-file=<string>     - Specify file to retrieve coverage information from
  --instrument-gisel-coverage        - Generate coverage instrumentation for GlobalISel
  --optimize-match-table             - Generate an optimized version of the match table
  --warn-on-skipped-patterns         - Explain why a pattern was skipped for inclusion in the GlobalISel selector

Options for -gen-global-isel-combiner:

  --combiners=<string>               - Emit the specified combiners
  --gicombiner-show-expansions       - Use C++ comments to indicate occurence of code expansion
  --gicombiner-stop-after-build      - Stop processing after building the match tree
  --gicombiner-stop-after-parse      - Stop processing after parsing rules and dump state

Options for -gen-intrinsic-enums:

  --intrinsic-prefix=<target prefix> - Generate intrinsics with this target prefix

Options for -gen-register-info:

  --register-info-debug              - Dump register information to help debugging

Options for -print-enums:

  --class=<class name>               - Print Enum list for this class

llvm-undname
root@kali:~# llvm-undname -h
OVERVIEW: llvm-undname

USAGE: llvm-undname [options] <input symbols>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

llvm-xray
root@kali:~# llvm-xray -h
OVERVIEW: XRay Tools

  This program consolidates multiple XRay trace processing tools for convenient access.

USAGE: llvm-xray [subcommand] [options]

SUBCOMMANDS:

  account    - Function call accounting
  convert    - Trace Format Conversion
  extract    - Extract instrumentation maps
  fdr-dump   - FDR Trace Dump
  graph      - Generate function-call graph
  graph-diff - Generate diff of function-call graphs
  stack      - Call stack accounting

  Type "llvm-xray <subcommand> --help" to get more help on a specific subcommand

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

obj2yaml
root@kali:~# obj2yaml -h
USAGE: obj2yaml [options] <input file>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

opt
root@kali:~# opt -h
OVERVIEW: llvm .bc -> .bc modular optimizer and analysis printer

USAGE: opt [options] <input bitcode file>

OPTIONS:

Color Options:

  --color                                                              - Use colors in output (default=autodetect)

General options:

  --O0                                                                 - Optimization level 0. Similar to clang -O0
  --O1                                                                 - Optimization level 1. Similar to clang -O1
  --O2                                                                 - Optimization level 2. Similar to clang -O2
  --O3                                                                 - Optimization level 3. Similar to clang -O3
  --Os                                                                 - Like -O2 with extra optimizations for size. Similar to clang -Os
  --Oz                                                                 - Like -Os but reduces code size further. Similar to clang -Oz
  -S                                                                   - Write output as LLVM assembly
  --aarch64-neon-syntax=<value>                                        - Choose style of NEON code to emit from AArch64 backend:
    =generic                                                           -   Emit generic NEON assembly
    =apple                                                             -   Emit Apple-style NEON assembly
  --addrsig                                                            - Emit an address-significance table
  --amdgpu-bypass-slow-div                                             - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                                      - Do not align and prefetch loops
  --amdgpu-disable-power-sched                                         - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                                                 - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                                           - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                                     - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                                             - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>                       - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill                                 - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                                               - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                                         - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                                             - Use GPR indexing mode instead of movrel for vector indexing
  --analyze                                                            - Only perform analysis, no optimization
  --arm-add-build-attributes                                           - 
  --arm-implicit-it=<value>                                            - Allow conditional instructions outdside of an IT block
    =always                                                            -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                                             -   Warn in ARM, reject in Thumb
    =arm                                                               -   Accept in ARM, reject in Thumb
    =thumb                                                             -   Warn in ARM, emit implicit ITs in Thumb
  --asm-show-inst                                                      - Emit internal instruction representation to assembly file
  --atomic-counter-update-promoted                                     - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                                               - Use atomic fetch add for first counter in a function (usually the entry counter)
  --basicblock-sections=<all | <function list (file)> | labels | none> - Emit basic blocks into separate sections
  --bounds-checking-single-trap                                        - Use one trap block per function
  --cfg-hide-deoptimize-paths                                          - 
  --cfg-hide-unreachable-paths                                         - 
  --code-model=<value>                                                 - Choose code model
    =tiny                                                              -   Tiny code model
    =small                                                             -   Small code model
    =kernel                                                            -   Kernel code model
    =medium                                                            -   Medium code model
    =large                                                             -   Large code model
  --codegen-opt-level=<uint>                                           - Override optimization level for codegen hooks
  --cost-kind=<value>                                                  - Target cost kind
    =throughput                                                        -   Reciprocal throughput
    =latency                                                           -   Instruction latency
    =code-size                                                         -   Code size
  --cvp-dont-add-nowrap-flags                                          - 
  --data-layout=<layout-string>                                        - data layout string to use
  --data-sections                                                      - Emit data into separate sections
  --debug-entry-values                                                 - Enable debug info for the debug entry values.
  --debugger-tune=<value>                                              - Tune debug info for a particular debugger
    =gdb                                                               -   gdb
    =lldb                                                              -   lldb
    =sce                                                               -   SCE targets (e.g. PS4)
  --debugify-each                                                      - Start each pass with debugify and end it with check-debugify
  --debugify-export=<filename>                                         - Export per-pass debugify statistics to this file
  --debugify-level=<value>                                             - Kind of debug info to add
    =locations                                                         -   Locations only
    =location+variables                                                -   Locations and Variables
  --debugify-quiet                                                     - Suppress verbose debugify output
  --denormal-fp-math=<value>                                           - Select which denormal numbers the code is permitted to require
    =ieee                                                              -   IEEE 754 denormal numbers
    =preserve-sign                                                     -   the sign of a  flushed-to-zero number is preserved in the sign of 0
    =positive-zero                                                     -   denormals are flushed to positive zero
  --denormal-fp-math-f32=<value>                                       - Select which denormal numbers the code is permitted to require for float
    =ieee                                                              -   IEEE 754 denormal numbers
    =preserve-sign                                                     -   the sign of a  flushed-to-zero number is preserved in the sign of 0
    =positive-zero                                                     -   denormals are flushed to positive zero
  --disable-builtin=<string>                                           - Disable specific target library builtin function
  --disable-debug-info-type-map                                        - Don't use a uniquing type map for debug info
  --disable-inlining                                                   - Do not run the inliner pass
  --disable-loop-unrolling                                             - Disable loop unrolling in all relevant passes
  --disable-opt                                                        - Do not run any optimization passes
  --disable-promote-alloca-to-lds                                      - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                                   - Disable promote alloca to vector
  --disable-simplify-libcalls                                          - Disable simplify-libcalls
  --disable-tail-calls                                                 - Never emit tail calls
  --do-counter-promotion                                               - Do counter register promotion
  --dwarf-version=<int>                                                - Dwarf version
  --dwarf64                                                            - Generate debugging info in the 64-bit DWARF format
  --emit-call-site-info                                                - Emit call site debug information, if debug information is enabled.
  --emscripten-cxx-exceptions-allowed=<string>                         - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --emulated-tls                                                       - Use emulated TLS model
  --enable-cse-in-irtranslator                                         - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                                            - Should enable CSE in Legalizer
  --enable-debugify                                                    - Start the pipeline with debugify and end it with check-debugify
  --enable-emscripten-cxx-exceptions                                   - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                                             - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                                   - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                                  - 
  --enable-gvn-sink                                                    - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                                            - 
  --enable-load-pre                                                    - 
  --enable-loop-simplifycfg-term-folding                               - 
  --enable-name-compression                                            - Enable name/filename string compression
  --enable-new-pm                                                      - Enable the new pass manager
  --enable-no-infs-fp-math                                             - Enable FP math optimizations that assume no +-Infs
  --enable-no-nans-fp-math                                             - Enable FP math optimizations that assume no NaNs
  --enable-no-signed-zeros-fp-math                                     - Enable FP math optimizations that assume the sign of 0 is insignificant
  --enable-no-trapping-fp-math                                         - Enable setting the FP exceptions build attribute not to use exceptions
  --enable-unsafe-fp-math                                              - Enable optimizations that may decrease FP precision
  --exception-model=<value>                                            - exception model
    =default                                                           -   default exception handling model
    =dwarf                                                             -   DWARF-like CFI based exception handling
    =sjlj                                                              -   SjLj exception handling
    =arm                                                               -   ARM EHABI exceptions
    =wineh                                                             -   Windows exception model
    =wasm                                                              -   WebAssembly exception handling
  -f                                                                   - Enable binary output on terminals
  --fatal-warnings                                                     - Treat warnings as errors
  --filetype=<value>                                                   - Choose a file type (not all types are supported by all targets):
    =asm                                                               -   Emit an assembly ('.s') file
    =obj                                                               -   Emit a native object ('.o') file
    =null                                                              -   Emit nothing, for performance testing
  --float-abi=<value>                                                  - Choose float ABI type
    =default                                                           -   Target default float ABI type
    =soft                                                              -   Soft float ABI (implied by -soft-float)
    =hard                                                              -   Hard float ABI (uses FP registers)
  --force-dwarf-frame-section                                          - Always emit a debug frame section.
  --fp-contract=<value>                                                - Enable aggressive formation of fused FP ops
    =fast                                                              -   Fuse FP ops whenever profitable
    =on                                                                -   Only fuse 'blessed' FP ops.
    =off                                                               -   Only fuse FP ops when the result won't be affected.
  --frame-pointer=<value>                                              - Specify frame pointer elimination optimization
    =all                                                               -   Disable frame pointer elimination
    =non-leaf                                                          -   Disable frame pointer elimination for non-leaf frame
    =none                                                              -   Enable frame pointer elimination
  --function-sections                                                  - Emit functions into separate sections
  --gpsize=<uint>                                                      - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                                           - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                                     - Enable hot-cold splitting pass
  --import-all-index                                                   - Import all external functions in index.
  --incremental-linker-compatible                                      - When used with filetype=obj, emit an object file which can be used with an incremental linker
  --instcombine-code-sinking                                           - Enable code sinking
  --instcombine-guard-widening-window=<uint>                           - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                                  - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                                    - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                                   - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                                        - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>                               - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all                                - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>                             - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>                                 - A list of symbol names to preserve
  --iterative-counter-promotion                                        - Allow counter promotion across the whole loop nest.
  --load=<pluginfilename>                                              - Load the specified plugin
  --load-pass-plugin=<string>                                          - Load passes from plugin library
  --lto-embed-bitcode                                                  - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                                    - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                                   - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>                                 - Output filename for pass remarks
  --march=<string>                                                     - Architecture to generate code for (see --version)
  --matrix-default-layout=<value>                                      - Sets the default matrix layout
    =column-major                                                      -   Use column-major layout
    =row-major                                                         -   Use row-major layout
  --mattr=<a1,+a2,-a3,...>                                             - Target specific attributes (-mattr=help for details)
  --max-counter-promotions=<int>                                       - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>                             - Max number counter promotions per loop to avoid increasing register pressure too much
  --mc-relax-all                                                       - When used with filetype=obj, relax all fixups in the emitted object file
  --mcpu=<cpu-name>                                                    - Target a specific cpu type (-mcpu=help for details)
  --meabi=<value>                                                      - Set EABI type (default depends on triple):
    =default                                                           -   Triple default EABI version
    =4                                                                 -   EABI version 4
    =5                                                                 -   EABI version 5
    =gnu                                                               -   EABI GNU
  --memop-size-large=<uint>                                            - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                                          - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                                         - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                                      - Error for register names that aren't contigious
  --mhvx                                                               - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                                       - Enable Hexagon Vector eXtensions
    =v60                                                               -   Build for HVX v60
    =v62                                                               -   Build for HVX v62
    =v65                                                               -   Build for HVX v65
    =v66                                                               -   Build for HVX v66
    =v67                                                               -   Build for HVX v67
  --mips-compact-branches=<value>                                      - MIPS Specific: Compact branch policy.
    =never                                                             -   Do not use compact branches if possible.
    =optimal                                                           -   Use compact branches where appropriate (default).
    =always                                                            -   Always use compact branches if possible.
  --mips16-constant-islands                                            - Enable mips16 constant islands.
  --mips16-hard-float                                                  - Enable mips16 hard float.
  --mir-strip-debugify-only                                            - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                                       - Disable looking for compound instructions for Hexagon
  --mno-fixup                                                          - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                                      - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                                        - Disable looking for duplex instructions for Hexagon
  --module-hash                                                        - Emit module hash
  --module-summary                                                     - Emit module summary index
  --mtriple=<string>                                                   - Override target triple for module
  --mwarn-missing-parenthesis                                          - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                                       - Warn for register names that arent contigious
  --mwarn-sign-mismatch                                                - Warn for mismatching a signed and unsigned value
  --no-deprecated-warn                                                 - Suppress all deprecated warnings
  --no-discriminators                                                  - Disable generation of discriminator information.
  --no-warn                                                            - Suppress all warnings
  --no-xray-index                                                      - Don't emit xray_fn_idx section
  --nozero-initialized-in-bss                                          - Don't place zero-initialized symbols into bss section
  --nvptx-sched4reg                                                    - NVPTX Specific: schedule for register pressue
  -o=<filename>                                                        - Override output filename
  -p                                                                   - Print module after each transformation
  --pass-remarks-filter=<regex>                                        - Only record optimization remarks from passes whose names match the given regular expression
  --pass-remarks-format=<format>                                       - The format used for serializing remarks (default: YAML)
  --pass-remarks-output=<filename>                                     - Output filename for pass remarks
  --poison-checking-function-local                                     - Check that returns are non-poison (for testing)
  --print-breakpoints-for-testing                                      - Print select breakpoints location for testing
  --r600-ir-structurize                                                - Use StructurizeCFG IR pass
  --rdf-dump                                                           - 
  --rdf-limit=<uint>                                                   - 
  --relax-elf-relocations                                              - Emit GOTPCRELX/REX_GOTPCRELX instead of GOTPCREL on x86-64 ELF
  --relocation-model=<value>                                           - Choose relocation model
    =static                                                            -   Non-relocatable code
    =pic                                                               -   Fully relocatable, position independent code
    =dynamic-no-pic                                                    -   Relocatable external references, non-relocatable code
    =ropi                                                              -   Code and read-only data relocatable, accessed PC-relative
    =rwpi                                                              -   Read-write data relocatable, accessed relative to static base
    =ropi-rwpi                                                         -   Combination of ropi and rwpi
  --runtime-counter-relocation                                         - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                                   - 
  --sample-profile-check-record-coverage=<N>                           - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>                           - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>                     - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  Optimizations available:
      --X86CondBrFolding                                                  - X86CondBrFolding
      --aa                                                                - Function Alias Analysis Results
      --aa-eval                                                           - Exhaustive Alias Analysis Precision Evaluator
      --aarch64-a57-fp-load-balancing                                     - AArch64 A57 FP Load-Balancing
      --aarch64-branch-targets                                            - AArch64 Branch Targets
      --aarch64-ccmp                                                      - AArch64 CCMP Pass
      --aarch64-collect-loh                                               - AArch64 Collect Linker Optimization Hint (LOH)
      --aarch64-condopt                                                   - AArch64 CondOpt Pass
      --aarch64-copyelim                                                  - AArch64 redundant copy elimination pass
      --aarch64-dead-defs                                                 - AArch64 Dead register definitions
      --aarch64-expand-pseudo                                             - AArch64 pseudo instruction expansion pass
      --aarch64-fix-cortex-a53-835769-pass                                - AArch64 fix for A53 erratum 835769
      --aarch64-jump-tables                                               - AArch64 compress jump tables pass
      --aarch64-ldst-opt                                                  - AArch64 load / store optimization pass
      --aarch64-local-dynamic-tls-cleanup                                 - AArch64 Local Dynamic TLS Access Clean-up
      --aarch64-postlegalizer-combiner                                    - Combine AArch64 MachineInstrs after legalization
      --aarch64-prelegalizer-combiner                                     - Combine AArch64 machine instrs before legalization
      --aarch64-promote-const                                             - AArch64 Promote Constant Pass
      --aarch64-simd-scalar                                               - AdvSIMD Scalar Operation Optimization
      --aarch64-simdinstr-opt                                             - AArch64 SIMD instructions optimization pass
      --aarch64-sls-hardening                                             - AArch64 sls hardening pass
      --aarch64-speculation-hardening                                     - AArch64 speculation hardening pass
      --aarch64-stack-tagging-pre-ra                                      - AArch64 Stack Tagging PreRA Pass
      --aarch64-stp-suppress                                              - AArch64 Store Pair Suppression
      --adce                                                              - Aggressive Dead Code Elimination
      --add-discriminators                                                - Add DWARF path discriminators
      --aggressive-instcombine                                            - Combine pattern based expressions
      --alignment-from-assumptions                                        - Alignment from assumptions
      --alloca-hoisting                                                   - Hoisting alloca instructions in non-entry blocks to the entry block
      --always-inline                                                     - Inliner for always_inline functions
      --amdgpu-aa                                                         - AMDGPU Address space based Alias Analysis
      --amdgpu-aa-wrapper                                                 - AMDGPU Address space based Alias Analysis Wrapper
      --amdgpu-always-inline                                              - AMDGPU Inline All Functions
      --amdgpu-annotate-kernel-features                                   - Add AMDGPU function attributes
      --amdgpu-annotate-uniform                                           - Add AMDGPU uniform metadata
      --amdgpu-argument-reg-usage-info                                    - Argument Register Usage Information Storage
      --amdgpu-atomic-optimizer                                           - AMDGPU atomic optimizations
      --amdgpu-codegenprepare                                             - AMDGPU IR optimizations
      --amdgpu-fix-function-bitcasts                                      - Fix function bitcasts for AMDGPU
      --amdgpu-inline                                                     - AMDGPU Function Integration/Inlining
      --amdgpu-isel                                                       - AMDGPU DAG->DAG Pattern Instruction Selection
      --amdgpu-lower-enqueued-block                                       - Lower OpenCL enqueued blocks
      --amdgpu-lower-intrinsics                                           - Lower intrinsics
      --amdgpu-lower-kernel-arguments                                     - AMDGPU Lower Kernel Arguments
      --amdgpu-lower-kernel-attributes                                    - AMDGPU IR optimizations
      --amdgpu-nsa-reassign                                               - GCN NSA Reassign
      --amdgpu-perf-hint                                                  - Analysis if a function is memory bound
      --amdgpu-postlegalizer-combiner                                     - Combine AMDGPU machine instrs after legalization
      --amdgpu-prelegalizer-combiner                                      - Combine AMDGPU machine instrs before legalization
      --amdgpu-printf-runtime-binding                                     - AMDGPU Printf lowering
      --amdgpu-promote-alloca                                             - AMDGPU promote alloca to vector or LDS
      --amdgpu-promote-alloca-to-vector                                   - AMDGPU promote alloca to vector
      --amdgpu-propagate-attributes-early                                 - Early propagate attributes from kernels to functions
      --amdgpu-propagate-attributes-late                                  - Late propagate attributes from kernels to functions
      --amdgpu-regbanks-reassign                                          - GCN RegBank Reassign
      --amdgpu-rewrite-out-arguments                                      - AMDGPU Rewrite Out Arguments
      --amdgpu-simplifylib                                                - Simplify well-known AMD library calls
      --amdgpu-unify-divergent-exit-nodes                                 - Unify divergent function exit nodes
      --amdgpu-unify-metadata                                             - Unify multiple OpenCL metadata due to linking
      --amdgpu-usenative                                                  - Replace builtin math calls with that native versions.
      --amode-opt                                                         - Optimize addressing mode
      --argpromotion                                                      - Promote 'by reference' arguments to scalars
      --arm-cp-islands                                                    - ARM constant island placement and branch shortening pass
      --arm-execution-domain-fix                                          - ARM Execution Domain Fix
      --arm-ldst-opt                                                      - ARM load / store optimization pass
      --arm-low-overhead-loops                                            - ARM Low Overhead Loops pass
      --arm-mve-vpt                                                       - ARM MVE VPT block pass
      --arm-mve-vpt-opts                                                  - ARM MVE VPT Optimisations pass
      --arm-parallel-dsp                                                  - Transform functions to use DSP intrinsics
      --arm-prera-ldst-opt                                                - ARM pre- register allocation load / store optimization pass
      --arm-pseudo                                                        - ARM pseudo instruction expansion pass
      --asan                                                              - AddressSanitizer: detects use-after-free and out-of-bounds bugs.
      --asan-globals-md                                                   - Read metadata to mark which globals should be instrumented when running ASan.
      --asan-module                                                       - AddressSanitizer: detects use-after-free and out-of-bounds bugs.ModulePass
      --assume-builder                                                    - Assume Builder
      --assume-simplify                                                   - Assume Simplify
      --assumption-cache-tracker                                          - Assumption Cache Tracker
      --atomic-expand                                                     - Expand Atomic instructions
      --attributor                                                        - Deduce and propagate attributes
      --attributor-cgscc                                                  - Deduce and propagate attributes (CGSCC pass)
      --avr-expand-pseudo                                                 - AVR pseudo instruction expansion pass
      --avr-relax-mem                                                     - AVR memory operation relaxation pass
      --barrier                                                           - A No-Op Barrier Pass
      --basic-aa                                                          - Basic Alias Analysis (stateless AA impl)
      --basiccg                                                           - CallGraph Construction
      --bdce                                                              - Bit-Tracking Dead Code Elimination
      --block-freq                                                        - Block Frequency Analysis
      --bool-ret-to-int                                                   - Convert i1 constants to i32/i64 if they are returned
      --bounds-checking                                                   - Run-time bounds checking
      --bpf-abstract-member-access                                        - abstracting struct/union member accessees
      --bpf-mi-trunc-elim                                                 - BPF MachineSSA Peephole Optimization For TRUNC Eliminate
      --bpf-mi-zext-elim                                                  - BPF MachineSSA Peephole Optimization For ZEXT Eliminate
      --bpf-preserve-di-type                                              - preserve debuginfo type
      --branch-prob                                                       - Branch Probability Analysis
      --break-crit-edges                                                  - Break critical edges in CFG
      --called-value-propagation                                          - Called Value Propagation
      --callsite-splitting                                                - Call-site splitting
      --canon-freeze                                                      - Canonicalize Freeze Instructions in Loops
      --canonicalize-aliases                                              - Canonicalize aliases
      --cfl-anders-aa                                                     - Inclusion-Based CFL Alias Analysis
      --cfl-steens-aa                                                     - Unification-Based CFL Alias Analysis
      --cg-profile                                                        - Call Graph Profile
      --check-debugify                                                    - Check debug info from -debugify
      --check-debugify-function                                           - Check debug info from -debugify-function
      --chr                                                               - Reduce control height in the hot paths
      --codegenprepare                                                    - Optimize for code generation
      --consthoist                                                        - Constant Hoisting
      --constmerge                                                        - Merge Duplicate Global Constants
      --constprop                                                         - Simple constant propagation
      --coro-cleanup                                                      - Lower all coroutine related intrinsics
      --coro-early                                                        - Lower early coroutine intrinsics
      --coro-elide                                                        - Coroutine frame allocation elision and indirect calls replacement
      --coro-split                                                        - Split coroutine into a set of functions driving its state machine
      --correlated-propagation                                            - Value Propagation
      --cost-model                                                        - Cost Model Analysis
      --cross-dso-cfi                                                     - Cross-DSO CFI
      --cseinfo                                                           - Analysis containing CSE Info
      --da                                                                - Dependence Analysis
      --dce                                                               - Dead Code Elimination
      --deadargelim                                                       - Dead Argument Elimination
      --deadarghaX0r                                                      - Dead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE)
      --debugify                                                          - Attach debug info to everything
      --debugify-function                                                 - Attach debug info to a function
      --delinearize                                                       - Delinearization
      --demanded-bits                                                     - Demanded bits analysis
      --dfsan                                                             - DataFlowSanitizer: dynamic data flow analysis.
      --die                                                               - Dead Instruction Elimination
      --div-rem-pairs                                                     - Hoist/decompose integer division and remainder
      --divergence                                                        - Legacy Divergence Analysis
      --domfrontier                                                       - Dominance Frontier Construction
      --domtree                                                           - Dominator Tree Construction
      --dot-callgraph                                                     - Print call graph to 'dot' file
      --dot-cfg                                                           - Print CFG of function to 'dot' file
      --dot-cfg-only                                                      - Print CFG of function to 'dot' file (with no function bodies)
      --dot-dom                                                           - Print dominance tree of function to 'dot' file
      --dot-dom-only                                                      - Print dominance tree of function to 'dot' file (with no function bodies)
      --dot-postdom                                                       - Print postdominance tree of function to 'dot' file
      --dot-postdom-only                                                  - Print postdominance tree of function to 'dot' file (with no function bodies)
      --dot-regions                                                       - Print regions of function to 'dot' file
      --dot-regions-only                                                  - Print regions of function to 'dot' file (with no function bodies)
      --dot-scops                                                         - Polly - Print Scops of function
      --dot-scops-only                                                    - Polly - Print Scops of function (with no function bodies)
      --dse                                                               - Dead Store Elimination
      --dwarfehprepare                                                    - Prepare DWARF exceptions
      --early-cse                                                         - Early CSE
      --early-cse-memssa                                                  - Early CSE w/ MemorySSA
      --edge-bundles                                                      - Bundle Machine CFG Edges
      --ee-instrument                                                     - Instrument function entry/exit with calls to e.g. mcount() (pre inlining)
      --elim-avail-extern                                                 - Eliminate Available Externally Globals
      --expand-reductions                                                 - Expand reduction intrinsics
      --expandmemcmp                                                      - Expand memcmp() to load/stores
      --external-aa                                                       - External Alias Analysis
      --extract-blocks                                                    - Extract basic blocks from module
      --falkor-hwpf-fix                                                   - Falkor HW Prefetch Fix
      --falkor-hwpf-fix-late                                              - Falkor HW Prefetch Fix Late Phase
      --fix-irreducible                                                   - Convert irreducible control-flow into natural loops
      --flattencfg                                                        - Flatten the CFG
      --float2int                                                         - Float to int
      --forceattrs                                                        - Force set function attributes
      --function-import                                                   - Summary Based Function Import
      --functionattrs                                                     - Deduce function attributes
      --gcn-dpp-combine                                                   - GCN DPP Combine
      --generic-to-nvvm                                                   - Ensure that the global variables are in the global address space
      --gisel-known-bits                                                  - Analysis for ComputingKnownBits
      --global-merge                                                      - Merge global variables
      --globaldce                                                         - Dead Global Elimination
      --globalopt                                                         - Global Variable Optimizer
      --globals-aa                                                        - Globals Alias Analysis
      --globalsplit                                                       - Global splitter
      --guard-widening                                                    - Widen guards
      --gvn                                                               - Global Value Numbering
      --gvn-hoist                                                         - Early GVN Hoisting of Expressions
      --gvn-sink                                                          - Early GVN sinking of Expressions
      --hardware-loops                                                    - Hardware Loop Insertion
      --hexagon-bit-simplify                                              - Hexagon bit simplification
      --hexagon-cext-opt                                                  - Hexagon constant-extender optimization
      --hexagon-constp                                                    - Hexagon Constant Propagation
      --hexagon-early-if                                                  - Hexagon early if conversion
      --hexagon-gen-mux                                                   - Hexagon generate mux instructions
      --hexagon-loop-idiom                                                - Recognize Hexagon-specific loop idioms
      --hexagon-nvj                                                       - Hexagon NewValueJump
      --hexagon-packetizer                                                - Hexagon Packetizer
      --hexagon-rdf-opt                                                   - Hexagon RDF optimizations
      --hexagon-split-double                                              - Hexagon Split Double Registers
      --hexagon-vextract                                                  - Hexagon optimize vextract
      --hexagon-vlcr                                                      - Hexagon-specific predictive commoning for HVX vectors
      --hotcoldsplit                                                      - Hot Cold Splitting
      --hwasan                                                            - HWAddressSanitizer: detect memory bugs using tagged addressing.
      --hwloops                                                           - Hexagon Hardware Loops
      --indirectbr-expand                                                 - Expand indirectbr instructions
      --indvars                                                           - Induction Variable Simplification
      --infer-address-spaces                                              - Infer address spaces
      --inferattrs                                                        - Infer set function attributes
      --inject-tli-mappings                                               - Inject TLI Mappings
      --inline                                                            - Function Integration/Inlining
      --insert-gcov-profiling                                             - Insert instrumentation for GCOV profiling
      --instcombine                                                       - Combine redundant instructions
      --instcount                                                         - Counts the various types of Instructions
      --instnamer                                                         - Assign names to anonymous instructions
      --instrorderfile                                                    - Instrumentation for Order File
      --instrprof                                                         - Frontend instrumentation-based coverage lowering.
      --instruction-select                                                - Select target instructions out of generic instructions
      --instsimplify                                                      - Remove redundant instructions
      --interleaved-access                                                - Lower interleaved memory accesses to target specific intrinsics
      --interleaved-load-combine                                          - Combine interleaved loads into wide loads and shufflevector instructions
      --internalize                                                       - Internalize Global Symbols
      --intervals                                                         - Interval Partition Construction
      --ipconstprop                                                       - Interprocedural constant propagation
      --ipsccp                                                            - Interprocedural Sparse Conditional Constant Propagation
      --irce                                                              - Inductive range check elimination
      --irtranslator                                                      - IRTranslator LLVM IR -> MI
      --iv-users                                                          - Induction Variable Users
      --jump-threading                                                    - Jump Threading
      --lazy-block-freq                                                   - Lazy Block Frequency Analysis
      --lazy-branch-prob                                                  - Lazy Branch Probability Analysis
      --lazy-value-info                                                   - Lazy Value Information Analysis
      --lcssa                                                             - Loop-Closed SSA Form Pass
      --lcssa-verification                                                - LCSSA Verifier
      --legalizer                                                         - Legalize the Machine IR a function's Machine IR
      --libcalls-shrinkwrap                                               - Conditionally eliminate dead library calls
      --licm                                                              - Loop Invariant Code Motion
      --lint                                                              - Statically lint-checks LLVM IR
      --liveintervals                                                     - Live Interval Analysis
      --liveregmatrix                                                     - Live Register Matrix
      --load-store-vectorizer                                             - Vectorize load and store instructions
      --localizer                                                         - Move/duplicate certain instructions close to their use
      --loop-accesses                                                     - Loop Access Analysis
      --loop-data-prefetch                                                - Loop Data Prefetch
      --loop-deletion                                                     - Delete dead loops
      --loop-distribute                                                   - Loop Distribution
      --loop-extract                                                      - Extract loops into new functions
      --loop-extract-single                                               - Extract at most one loop into a new function
      --loop-fusion                                                       - Loop Fusion
      --loop-guard-widening                                               - Widen guards (within a single loop, as a loop pass)
      --loop-idiom                                                        - Recognize loop idioms
      --loop-instsimplify                                                 - Simplify instructions in loops
      --loop-interchange                                                  - Interchanges loops for cache reuse
      --loop-load-elim                                                    - Loop Load Elimination
      --loop-predication                                                  - Loop predication
      --loop-reduce                                                       - Loop Strength Reduction
      --loop-reroll                                                       - Reroll loops
      --loop-rotate                                                       - Rotate Loops
      --loop-simplify                                                     - Canonicalize natural loops
      --loop-simplifycfg                                                  - Simplify loop CFG
      --loop-sink                                                         - Loop Sink
      --loop-unroll                                                       - Unroll loops
      --loop-unroll-and-jam                                               - Unroll and Jam loops
      --loop-unswitch                                                     - Unswitch loops
      --loop-vectorize                                                    - Loop Vectorization
      --loop-versioning                                                   - Loop Versioning
      --loop-versioning-licm                                              - Loop Versioning For LICM
      --loops                                                             - Natural Loop Information
      --lower-constant-intrinsics                                         - Lower constant intrinsics
      --lower-expect                                                      - Lower 'expect' Intrinsics
      --lower-guard-intrinsic                                             - Lower the guard intrinsic to normal control flow
      --lower-matrix-intrinsics                                           - Lower the matrix intrinsics
      --lower-widenable-condition                                         - Lower the widenable condition to default true value
      --loweratomic                                                       - Lower atomic intrinsics to non-atomic form
      --lowerinvoke                                                       - Lower invoke and unwind, for unwindless code generators
      --lowerswitch                                                       - Lower SwitchInst's to branches
      --lowertypetests                                                    - Lower type metadata
      --machine-block-freq                                                - Machine Block Frequency Analysis
      --machine-branch-prob                                               - Machine Branch Probability Analysis
      --machine-domfrontier                                               - Machine Dominance Frontier Construction
      --machine-loops                                                     - Machine Natural Loop Construction
      --machine-trace-metrics                                             - Machine Trace Metrics
      --machinedomtree                                                    - MachineDominator Tree Construction
      --machinepostdomtree                                                - MachinePostDominator Tree Construction
      --make-guards-explicit                                              - Lower the guard intrinsic to explicit control flow form
      --mem2reg                                                           - Promote Memory to Register
      --memcpyopt                                                         - MemCpy Optimization
      --memdep                                                            - Memory Dependence Analysis
      --memoryssa                                                         - Memory SSA
      --mergefunc                                                         - Merge Functions
      --mergeicmps                                                        - Merge contiguous icmps into a memcmp
      --mergereturn                                                       - Unify function exit nodes
      --metarenamer                                                       - Assign new names to everything
      --micromips-reduce-size                                             - MicroMips instruction size reduce pass
      --mips-branch-expansion                                             - Expand out of range branch instructions and fix forbidden slot hazards
      --mips-delay-slot-filler                                            - Fill delay slot for MIPS
      --mips-prelegalizer-combiner                                        - Combine Mips machine instrs before legalization
      --mldst-motion                                                      - MergedLoadStoreMotion
      --module-debuginfo                                                  - Decodes module-level debug info
      --module-summary-analysis                                           - Module Summary Analysis
      --module-summary-info                                               - Module summary info
      --msan                                                              - MemorySanitizer: detects uninitialized reads.
      --mve-gather-scatter-lowering                                       - MVE gather/scattering lowering pass
      --mve-tail-predication                                              - Transform predicated vector loops to use MVE tail predication
      --name-anon-globals                                                 - Provide a name to nameless globals
      --nary-reassociate                                                  - Nary reassociation
      --newgvn                                                            - Global Value Numbering
      --nvptx-assign-valid-global-names                                   - Assign valid PTX names to globals
      --nvptx-lower-aggr-copies                                           - Lower aggregate copies, and llvm.mem* intrinsics into loops
      --nvptx-lower-alloca                                                - Lower Alloca
      --nvptx-lower-args                                                  - Lower arguments (NVPTX)
      --nvptx-proxyreg-erasure                                            - NVPTX ProxyReg Erasure
      --nvvm-intr-range                                                   - Add !range metadata to NVVM intrinsics.
      --nvvm-reflect                                                      - Replace occurrences of __nvvm_reflect() calls with 0/1
      --objc-arc                                                          - ObjC ARC optimization
      --objc-arc-aa                                                       - ObjC-ARC-Based Alias Analysis
      --objc-arc-apelim                                                   - ObjC ARC autorelease pool elimination
      --objc-arc-contract                                                 - ObjC ARC contraction
      --objc-arc-expand                                                   - ObjC ARC expansion
      --openmpopt                                                         - OpenMP specific optimizations
      --opt-remark-emitter                                                - Optimization Remark Emitter
      --pa-eval                                                           - Evaluate ProvenanceAnalysis on all pairs
      --packets                                                           - R600 Packetizer
      --partial-inliner                                                   - Partial Inliner
      --partially-inline-libcalls                                         - Partially inline calls to library functions
      --pgo-icall-prom                                                    - Use PGO instrumentation profile to promote indirect calls to direct calls.
      --pgo-instr-gen                                                     - PGO instrumentation.
      --pgo-instr-use                                                     - Read PGO instrumentation profile.
      --pgo-memop-opt                                                     - Optimize memory intrinsic using its size value profile
      --phi-values                                                        - Phi Values Analysis
      --place-backedge-safepoints-impl                                    - Place Backedge Safepoints
      --place-safepoints                                                  - Place Safepoints
      --polly-ast                                                         - Polly - Generate an AST from the SCoP (isl)
      --polly-canonicalize                                                - Polly - Run canonicalization passes
      --polly-cleanup                                                     - Polly - Cleanup after code generation
      --polly-codegen                                                     - Polly - Create LLVM-IR from SCoPs
      --polly-dce                                                         - Polly - Remove dead iterations
      --polly-delicm                                                      - Polly - DeLICM/DePRE
      --polly-dependences                                                 - Polly - Calculate dependences
      --polly-detect                                                      - Polly - Detect static control parts (SCoPs)
      --polly-dump-module                                                 - Polly - Dump Module
      --polly-export-jscop                                                - Polly - Export Scops as JSON (Writes a .jscop file for each Scop)
      --polly-flatten-schedule                                            - Polly - Flatten schedule
      --polly-function-dependences                                        - Polly - Calculate dependences for all the SCoPs of a function
      --polly-function-scops                                              - Polly - Create polyhedral description of all Scops of a function
      --polly-import-jscop                                                - Polly - Import Scops from JSON (Reads a .jscop file for each Scop)
      --polly-mse                                                         - Polly - Maximal static expansion of SCoP
      --polly-opt-isl                                                     - Polly - Optimize schedule of SCoP
      --polly-optree                                                      - Polly - Forward operand tree
      --polly-prepare                                                     - Polly - Prepare code for polly
      --polly-prune-unprofitable                                          - Polly - Prune unprofitable SCoPs
      --polly-rewrite-byref-params                                        - Polly - Rewrite by reference parameters
      --polly-scop-inliner                                                - inline functions based on how much of the function is a scop.
      --polly-scops                                                       - Polly - Create polyhedral description of Scops
      --polly-simplify                                                    - Polly - Simplify
      --polyhedral-info                                                   - Polly - Interface to polyhedral analysis engine
      --post-inline-ee-instrument                                         - Instrument function entry/exit with calls to e.g. mcount() (post inlining)
      --postdomtree                                                       - Post-Dominator Tree Construction
      --ppc-branch-coalescing                                             - Branch Coalescing
      --ppc-branch-select                                                 - PowerPC Branch Selector
      --ppc-early-ret                                                     - PowerPC Early-Return Creation
      --ppc-expand-isel                                                   - PowerPC Expand ISEL Generation
      --ppc-loop-instr-form-prep                                          - Prepare loop for ppc preferred instruction forms
      --ppc-lower-massv-entries                                           - Lower MASSV entries
      --ppc-mi-peepholes                                                  - PowerPC MI Peephole Optimization
      --ppc-pre-emit-peephole                                             - PowerPC Pre-Emit Peephole
      --ppc-qpx-load-splat                                                - PowerPC QPX Load Splat Simplification
      --ppc-reduce-cr-ops                                                 - PowerPC Reduce CR logical Operation
      --ppc-tls-dynamic-call                                              - PowerPC TLS Dynamic Call Fixup
      --ppc-toc-reg-deps                                                  - PowerPC TOC Register Dependencies
      --ppc-vsx-copy                                                      - PowerPC VSX Copy Legalization
      --ppc-vsx-fma-mutate                                                - PowerPC VSX FMA Mutation
      --ppc-vsx-swaps                                                     - PowerPC VSX Swap Removal
      --pre-isel-intrinsic-lowering                                       - Pre-ISel Intrinsic Lowering
      --print-alias-sets                                                  - Alias Set Printer
      --print-callgraph                                                   - Print a call graph
      --print-callgraph-sccs                                              - Print SCCs of the Call Graph
      --print-cfg-sccs                                                    - Print SCCs of each function CFG
      --print-dom-info                                                    - Dominator Info Printer
      --print-externalfnconstants                                         - Print external fn callsites passed constants
      --print-function                                                    - Print function to stderr
      --print-lazy-value-info                                             - Lazy Value Info Printer Pass
      --print-memdeps                                                     - Print MemDeps of function
      --print-memderefs                                                   - Memory Dereferenciblity of pointers in function
      --print-memoryssa                                                   - Memory SSA Printer
      --print-module                                                      - Print module to stderr
      --print-must-be-executed-contexts                                   - print the must-be-executed-contexed for all instructions
      --print-mustexecute                                                 - Instructions which execute on loop entry
      --print-predicateinfo                                               - PredicateInfo Printer
      --profile-summary-info                                              - Profile summary info
      --prune-eh                                                          - Remove unused exception handling info
      --r600-expand-special-instrs                                        - R600ExpandSpecialInstrs
      --r600cf                                                            - R600 Control Flow Finalizer
      --r600mergeclause                                                   - R600 Clause Merge
      --reaching-deps-analysis                                            - ReachingDefAnalysis
      --reassociate                                                       - Reassociate expressions
      --redundant-dbg-inst-elim                                           - Redundant Dbg Instruction Elimination
      --reg2mem                                                           - Demote all values to stack slots
      --regbankselect                                                     - Assign register bank of generic virtual registers
      --regions                                                           - Detect single entry single exit regions
      --rewrite-statepoints-for-gc                                        - Make relocations explicit at statepoints
      --rewrite-symbols                                                   - Rewrite Symbols
      --riscv-expand-pseudo                                               - RISCV pseudo instruction expansion pass
      --rpo-functionattrs                                                 - Deduce function attributes in RPO
      --safe-stack                                                        - Safe Stack instrumentation pass
      --sample-profile                                                    - Sample Profile loader
      --sancov                                                            - Pass for instrumenting coverage on functions
      --scalar-evolution                                                  - Scalar Evolution Analysis
      --scalarize-masked-mem-intrin                                       - Scalarize unsupported masked memory intrinsics
      --scalarizer                                                        - Scalarize vector operations
      --sccp                                                              - Sparse Conditional Constant Propagation
      --scev-aa                                                           - ScalarEvolution-based Alias Analysis
      --scoped-noalias                                                    - Scoped NoAlias Alias Analysis
      --separate-const-offset-from-gep                                    - Split GEPs to a variadic base and a constant offset for better CSE
      --si-annotate-control-flow                                          - Annotate SI Control Flow
      --si-fix-sgpr-copies                                                - SI Fix SGPR copies
      --si-fix-vgpr-copies                                                - SI Fix VGPR copies
      --si-fixup-vector-isel                                              - SI Fixup Vector ISel
      --si-fold-operands                                                  - SI Fold Operands
      --si-form-memory-clauses                                            - SI Form memory clauses
      --si-i1-copies                                                      - SI Lower i1 Copies
      --si-img-init                                                       - SI Add IMG Init
      --si-insert-hard-clauses                                            - SI Insert Hard Clauses
      --si-insert-skips                                                   - SI insert s_cbranch_execz instructions
      --si-insert-waitcnts                                                - SI Insert Waitcnts
      --si-load-store-opt                                                 - SI Load Store Optimizer
      --si-lower-control-flow                                             - SI lower control flow
      --si-lower-sgpr-spills                                              - SI lower SGPR spill instructions
      --si-memory-legalizer                                               - SI Memory Legalizer
      --si-mode-register                                                  - Insert required mode register values
      --si-optimize-exec-masking                                          - SI optimize exec mask operations
      --si-optimize-exec-masking-pre-ra                                   - SI optimize exec mask operations pre-RA
      --si-peephole-sdwa                                                  - SI Peephole SDWA
      --si-post-ra-bundler                                                - SI post-RA bundler
      --si-pre-allocate-wwm-regs                                          - SI Pre-allocate WWM Registers
      --si-pre-emit-peephole                                              - SI peephole optimizations
      --si-remove-short-exec-branches                                     - SI remove short exec branches
      --si-shrink-instructions                                            - SI Shrink Instructions
      --si-wqm                                                            - SI Whole Quad Mode
      --simple-loop-unswitch                                              - Simple unswitch loops
      --simplifycfg                                                       - Simplify the CFG
      --sink                                                              - Code sinking
      --sjljehprepare                                                     - Prepare SjLj exceptions
      --slotindexes                                                       - Slot index numbering
      --slp-vectorizer                                                    - SLP Vectorizer
      --slsr                                                              - Straight line strength reduction
      --speculative-execution                                             - Speculatively execute instructions
      --sroa                                                              - Scalar Replacement Of Aggregates
      --stack-safety                                                      - Stack Safety Analysis
      --stack-safety-local                                                - Stack Safety Local Analysis
      --stack-tagging                                                     - AArch64 Stack Tagging
      --strip                                                             - Strip all symbols from a module
      --strip-dead-debug-info                                             - Strip debug info for unused symbols
      --strip-dead-prototypes                                             - Strip Unused Function Prototypes
      --strip-debug-declare                                               - Strip all llvm.dbg.declare intrinsics
      --strip-gc-relocates                                                - Strip gc.relocates inserted through RewriteStatepointsForGC
      --strip-nondebug                                                    - Strip all symbols, except dbg symbols, from a module
      --strip-nonlinetable-debuginfo                                      - Strip all debug info except linetables
      --structurizecfg                                                    - Structurize the CFG
      --sve-intrinsic-opts                                                - SVE intrinsics optimizations
      --t2-reduce-size                                                    - Thumb2 instruction size reduce pass
      --tailcallelim                                                      - Tail Call Elimination
      --targetlibinfo                                                     - Target Library Information
      --targetpassconfig                                                  - Target Pass Configuration
      --tbaa                                                              - Type-Based Alias Analysis
      --transform-warning                                                 - Warn about non-applied transformations
      --tsan                                                              - ThreadSanitizer: detects data races.
      --tti                                                               - Target Transform Information
      --type-promotion                                                    - Type Promotion
      --unify-loop-exits                                                  - Fixup each natural loop to have a single exit block
      --unique-internal-linkage-names                                     - Uniqueify Internal linkage names
      --unreachableblockelim                                              - Remove unreachable blocks from the CFG
      --vec-merger                                                        - R600 Vector Reg Merger
      --vector-combine                                                    - Optimize scalar/vector ops
      --verify                                                            - Module Verifier
      --verify-safepoint-ir                                               - Safepoint IR Verifier
      --view-callgraph                                                    - View call graph
      --view-cfg                                                          - View CFG of function
      --view-cfg-only                                                     - View CFG of function (with no function bodies)
      --view-dom                                                          - View dominance tree of function
      --view-dom-only                                                     - View dominance tree of function (with no function bodies)
      --view-postdom                                                      - View postdominance tree of function
      --view-postdom-only                                                 - View postdominance tree of function (with no function bodies)
      --view-regions                                                      - View regions of function
      --view-regions-only                                                 - View regions of function (with no function bodies)
      --view-scops                                                        - Polly - View Scops of function
      --view-scops-only                                                   - Polly - View Scops of function (with no function bodies)
      --virtregmap                                                        - Virtual Register Map
      --wasm-add-missing-prototypes                                       - Add prototypes to prototypes-less functions
      --wasm-argument-move                                                - Move ARGUMENT instructions for WebAssembly
      --wasm-cfg-sort                                                     - Reorders blocks in topological order
      --wasm-cfg-stackify                                                 - Insert BLOCK/LOOP/TRY markers for WebAssembly scopes
      --wasm-debug-fixup                                                  - Ensures debug_value's that have been stackified become stack relative
      --wasm-exception-info                                               - WebAssembly Exception Information
      --wasm-explicit-locals                                              - Convert registers to WebAssembly locals
      --wasm-fix-function-bitcasts                                        - Fix mismatching bitcasts for WebAssembly
      --wasm-fix-irreducible-control-flow                                 - Removes irreducible control flow
      --wasm-late-eh-prepare                                              - WebAssembly Late Exception Preparation
      --wasm-lower-br_unless                                              - Lowers br_unless into inverted br_if
      --wasm-lower-em-ehsjlj                                              - WebAssembly Lower Emscripten Exceptions / Setjmp / Longjmp
      --wasm-lower-global-dtors                                           - Lower @llvm.global_dtors for WebAssembly
      --wasm-mem-intrinsic-results                                        - Optimize memory intrinsic result values for WebAssembly
      --wasm-optimize-live-intervals                                      - Optimize LiveIntervals for WebAssembly
      --wasm-optimize-returned                                            - Optimize calls with "returned" attributes for WebAssembly
      --wasm-peephole                                                     - WebAssembly peephole optimizations
      --wasm-prepare-for-live-intervals                                   - Fix up code for LiveIntervals
      --wasm-reg-coloring                                                 - Minimize number of registers used
      --wasm-reg-numbering                                                - Assigns WebAssembly register numbers for virtual registers
      --wasm-reg-stackify                                                 - Reorder instructions to use the WebAssembly value stack
      --wasm-replace-phys-regs                                            - Replace physical registers with virtual registers
      --wasm-set-p2align-operands                                         - Set the p2align operands for WebAssembly loads and stores
      --wasmehprepare                                                     - Prepare WebAssembly exceptions
      --wholeprogramdevirt                                                - Whole program devirtualization
      --winehprepare                                                      - Prepare Windows exceptions
      --write-bitcode                                                     - Write Bitcode
      --x86-avoid-SFB                                                     - Machine code sinking
      --x86-avoid-trailing-call                                           - X86 avoid trailing call pass
      --x86-cf-opt                                                        - X86 Call Frame Optimization
      --x86-cmov-conversion                                               - X86 cmov Conversion
      --x86-codegen                                                       - X86 FP Stackifier
      --x86-domain-reassignment                                           - X86 Domain Reassignment Pass
      --x86-evex-to-vex-compress                                          - Compressing EVEX instrs to VEX encoding when possible
      --x86-execution-domain-fix                                          - X86 Execution Domain Fix
      --x86-fixup-LEAs                                                    - X86 LEA Fixup
      --x86-fixup-bw-insts                                                - X86 Byte/Word Instruction Fixup
      --x86-fixup-setcc                                                   - x86-fixup-setcc
      --x86-flags-copy-lowering                                           - X86 EFLAGS copy lowering
      --x86-lvi-load                                                      - X86 LVI load hardening
      --x86-lvi-ret                                                       - X86 LVI ret hardener
      --x86-optimize-LEAs                                                 - X86 optimize LEA pass
      --x86-partial-reduction                                             - X86 Partial Reduction
      --x86-pseudo                                                        - X86 pseudo instruction expansion pass
      --x86-seses                                                         - X86 Speculative Execution Side Effect Suppression
      --x86-slh                                                           - X86 speculative load hardener
      --x86-winehstate                                                    - Insert stores for EH state numbers
  --speculative-counter-promotion-max-exiting=<uint>                   - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop                              - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --stack-alignment=<uint>                                             - Override default stack alignment
  --stack-size-section                                                 - Emit a section containing stack size metadata
  --stack-symbol-ordering                                              - Order local stack symbols.
  --stackrealign                                                       - Force align the stack to the minimum alignment
  --std-link-opts                                                      - Include the standard link time optimizations
  --strip-debug                                                        - Strip debugger symbol info from translation unit
  --strip-named-metadata                                               - Strip module-level named metadata
  --summary-file=<string>                                              - The summary file to use for function importing.
  --tail-predication=<value>                                           - MVE tail-predication options
    =disabled                                                          -   Don't tail-predicate loops
    =enabled-no-reductions                                             -   Enable tail-predication, but not for reduction loops
    =enabled                                                           -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                                       -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                                     -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --tailcallopt                                                        - Turn fastcc calls into tail calls by (potentially) changing ABI.
  --thin-link-bitcode-file=<filename>                                  - A file in which to write minimized bitcode for the thin link only
  --thinlto-bc                                                         - Write output as ThinLTO-ready bitcode
  --thinlto-split-lto-unit                                             - Enable splitting of a ThinLTO LTOUnit
  --thread-model=<value>                                               - Choose threading model
    =posix                                                             -   POSIX thread model
    =single                                                            -   Single thread model
  --threads=<int>                                                      - 
  --time-trace                                                         - Record time trace
  --time-trace-file=<filename>                                         - Specify time trace file destination
  --tls-size=<uint>                                                    - Bit size of immediate TLS offsets
  --unique-bb-section-names                                            - Give unique names to every basic block section
  --unique-section-names                                               - Give unique names to every section
  --use-ctors                                                          - Use .ctors instead of .init_array.
  --verify-each                                                        - Verify after each transform
  --verify-region-info                                                 - Verify region info (time consuming)
  --vp-counters-per-site=<number>                                      - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                                    - Do static counter allocation for value profiler
  --x86-align-branch=<string>                                          - Specify types of branches to align (plus separated list of types):
                                                                         jcc      indicates conditional jumps
                                                                         fused    indicates fused conditional jumps
                                                                         jmp      indicates direct unconditional jumps
                                                                         call     indicates direct and indirect calls
                                                                         ret      indicates rets
                                                                         indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                                   - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries                                 - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                                     - Maximum number of prefixes to use for padding

Generic Options:

  --help                                                               - Display available options (--help-hidden for more)
  --help-list                                                          - Display list of available options (--help-list-hidden for more)
  --version                                                            - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                                              - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                                             - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                                           - Print memory access functions
  --polly-context=<isl parameter set>                                  - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                                      - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                                         - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                                        - Allow the detection of full functions
  --polly-dump-after                                                   - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                                     - Dump module after Polly transformations to the given file
  --polly-dump-before                                                  - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                                    - Dump module before Polly transformations to the given file
  --polly-enable-simplify                                              - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                                         - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                                           - Option passed to ISL
  --polly-on-isl-error-abort                                           - Abort if an isl error is encountered
  --polly-only-func=<string>                                           - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                                     - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                                          - Only run scop detection, but no other optimizations
  --polly-optimized-scops                                              - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                                     - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                                               - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                                  - Perform optimizations based on pattern matching
  --polly-process-unprofitable                                         - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                                              - Enable register tiling
  --polly-report                                                       - Print information about the activities of Polly
  --polly-show                                                         - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                                    - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                                     - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                                                -   One statement per basic block
    =scalar-indep                                                      -   Scalar independence heuristic
    =store                                                             -   Store-level granularity
  --polly-target=<value>                                               - The hardware to target
    =cpu                                                               -   generate CPU code
  --polly-tiling                                                       - Enable loop tiling
  --polly-vectorizer=<value>                                           - Select the vectorization strategy
    =none                                                              -   No Vectorization
    =polly                                                             -   Polly internal vectorizer
    =stripmine                                                         -   Strip-mine outer loops for the loop-vectorizer to trigger

sanstats
root@kali:~# sanstats -h
OVERVIEW: Sanitizer Statistics Processing Tool
USAGE: sanstats [options] <filename>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --demangle                                         - Print demangled function name.
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-force                             - Force generation of thread parallel code ignoring any cost model
  --polly-pattern-matching-based-opts                - Perform optimizations based on pattern matching
  --polly-process-unprofitable                       - Process scops that are unlikely to benefit from Polly optimizations.
  --polly-register-tiling                            - Enable register tiling
  --polly-report                                     - Print information about the activities of Polly
  --polly-show                                       - Highlight the code regions that will be optimized in a (CFG BBs and LLVM-IR instructions)
  --polly-show-only                                  - Highlight the code regions that will be optimized in a (CFG only BBs)
  --polly-stmt-granularity=<value>                   - Algorithm to use for splitting basic blocks into multiple statements
    =bb                                              -   One statement per basic block
    =scalar-indep                                    -   Scalar independence heuristic
    =store                                           -   Store-level granularity
  --polly-target=<value>                             - The hardware to target
    =cpu                                             -   generate CPU code
  --polly-tiling                                     - Enable loop tiling
  --polly-vectorizer=<value>                         - Select the vectorization strategy
    =none                                            -   No Vectorization
    =polly                                           -   Polly internal vectorizer
    =stripmine                                       -   Strip-mine outer loops for the loop-vectorizer to trigger

verify-uselistorder
root@kali:~# verify-uselistorder -h
OVERVIEW: llvm tool to verify use-list order

USAGE: verify-uselistorder [options] <input bitcode file>

OPTIONS:

Color Options:

  --color                                            - Use colors in output (default=autodetect)

General options:

  --aarch64-neon-syntax=<value>                      - Choose style of NEON code to emit from AArch64 backend:
    =generic                                         -   Emit generic NEON assembly
    =apple                                           -   Emit Apple-style NEON assembly
  --amdgpu-bypass-slow-div                           - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                    - Do not align and prefetch loops
  --amdgpu-disable-power-sched                       - Disable scheduling to minimize mAI power bursts
  --amdgpu-dpp-combine                               - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                         - Dump AMDGPU HSA Metadata
  --amdgpu-enable-global-sgpr-addr                   - Enable use of SGPR regs for GLOBAL LOAD/STORE instructions
  --amdgpu-enable-merge-m0                           - Merge and hoist M0 initializations
  --amdgpu-promote-alloca-to-vector-limit=<uint>     - Maximum byte size to consider promote alloca to vector
  --amdgpu-reserve-vgpr-for-sgpr-spill               - Allocates one VGPR for future SGPR Spill
  --amdgpu-sdwa-peephole                             - Enable SDWA peepholer
  --amdgpu-verify-hsa-metadata                       - Verify AMDGPU HSA Metadata
  --amdgpu-vgpr-index-mode                           - Use GPR indexing mode instead of movrel for vector indexing
  --arm-add-build-attributes                         - 
  --arm-implicit-it=<value>                          - Allow conditional instructions outdside of an IT block
    =always                                          -   Accept in both ISAs, emit implicit ITs in Thumb
    =never                                           -   Warn in ARM, reject in Thumb
    =arm                                             -   Accept in ARM, reject in Thumb
    =thumb                                           -   Warn in ARM, emit implicit ITs in Thumb
  --atomic-counter-update-promoted                   - Do counter update using atomic fetch add  for promoted counters only
  --atomic-first-counter                             - Use atomic fetch add for first counter in a function (usually the entry counter)
  --bounds-checking-single-trap                      - Use one trap block per function
  --cfg-hide-deoptimize-paths                        - 
  --cfg-hide-unreachable-paths                       - 
  --cost-kind=<value>                                - Target cost kind
    =throughput                                      -   Reciprocal throughput
    =latency                                         -   Instruction latency
    =code-size                                       -   Code size
  --cvp-dont-add-nowrap-flags                        - 
  --debugify-level=<value>                           - Kind of debug info to add
    =locations                                       -   Locations only
    =location+variables                              -   Locations and Variables
  --debugify-quiet                                   - Suppress verbose debugify output
  --disable-promote-alloca-to-lds                    - Disable promote alloca to LDS
  --disable-promote-alloca-to-vector                 - Disable promote alloca to vector
  --do-counter-promotion                             - Do counter register promotion
  --emscripten-cxx-exceptions-allowed=<string>       - The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)
  --enable-cse-in-irtranslator                       - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                          - Should enable CSE in Legalizer
  --enable-emscripten-cxx-exceptions                 - WebAssembly Emscripten-style exception handling
  --enable-emscripten-sjlj                           - WebAssembly Emscripten-style setjmp/longjmp handling
  --enable-gvn-hoist                                 - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                - 
  --enable-gvn-sink                                  - Enable the GVN sinking pass (default = off)
  --enable-load-in-loop-pre                          - 
  --enable-load-pre                                  - 
  --enable-loop-simplifycfg-term-folding             - 
  --enable-name-compression                          - Enable name/filename string compression
  --gpsize=<uint>                                    - Global Pointer Addressing Size.  The default size is 8.
  --hash-based-counter-split                         - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                   - Enable hot-cold splitting pass
  --import-all-index                                 - Import all external functions in index.
  --instcombine-code-sinking                         - Enable code sinking
  --instcombine-guard-widening-window=<uint>         - How wide an instruction window to bypass looking for another guard
  --instcombine-max-iterations=<uint>                - Limit the maximum number of instruction combining iterations
  --instcombine-max-num-phis=<uint>                  - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-maxarray-size=<uint>                 - Maximum array size considered when doing a combine
  --instcombine-negator-enabled                      - Should we attempt to sink negations?
  --instcombine-negator-max-depth=<uint>             - What is the maximal lookup depth when trying to check for viability of negation sinking.
  --instrprof-atomic-counter-update-all              - Make all profile counter updates atomic (for testing only)
  --internalize-public-api-file=<filename>           - A file containing list of symbol names to preserve
  --internalize-public-api-list=<list>               - A list of symbol names to preserve
  --iterative-counter-promotion                      - Allow counter promotion across the whole loop nest.
  --lto-embed-bitcode                                - Embed LLVM bitcode in object files produced by LTO
  --lto-pass-remarks-filter=<regex>                  - Only record optimization remarks from passes whose names match the given regular expression
  --lto-pass-remarks-format=<format>                 - The format used for serializing remarks (default: YAML)
  --lto-pass-remarks-output=<filename>               - Output filename for pass remarks
  --matrix-default-layout=<value>                    - Sets the default matrix layout
    =column-major                                    -   Use column-major layout
    =row-major                                       -   Use row-major layout
  --max-counter-promotions=<int>                     - Max number of allowed counter promotions
  --max-counter-promotions-per-loop=<uint>           - Max number counter promotions per loop to avoid increasing register pressure too much
  --memop-size-large=<uint>                          - Set large value thresthold in memory intrinsic size profiling. Value of 0 disables the large value profiling.
  --memop-size-range=<string>                        - Set the range of size in memory intrinsic calls to be profiled precisely, in a format of <start_val>:<end_val>
  --merror-missing-parenthesis                       - Error for missing parenthesis around predicate registers
  --merror-noncontigious-register                    - Error for register names that aren't contigious
  --mhvx                                             - Enable Hexagon Vector eXtensions
  --mhvx=<value>                                     - Enable Hexagon Vector eXtensions
    =v60                                             -   Build for HVX v60
    =v62                                             -   Build for HVX v62
    =v65                                             -   Build for HVX v65
    =v66                                             -   Build for HVX v66
    =v67                                             -   Build for HVX v67
  --mips-compact-branches=<value>                    - MIPS Specific: Compact branch policy.
    =never                                           -   Do not use compact branches if possible.
    =optimal                                         -   Use compact branches where appropriate (default).
    =always                                          -   Always use compact branches if possible.
  --mips16-constant-islands                          - Enable mips16 constant islands.
  --mips16-hard-float                                - Enable mips16 hard float.
  --mir-strip-debugify-only                          - Should mir-strip-debug only strip debug info from debugified modules by default
  --mno-compound                                     - Disable looking for compound instructions for Hexagon
  --mno-fixup                                        - Disable fixing up resolved relocations for Hexagon
  --mno-ldc1-sdc1                                    - Expand double precision loads and stores to their single precision counterparts
  --mno-pairing                                      - Disable looking for duplex instructions for Hexagon
  --mwarn-missing-parenthesis                        - Warn for missing parenthesis around predicate registers
  --mwarn-noncontigious-register                     - Warn for register names that arent contigious
  --mwarn-sign-mismatch                              - Warn for mismatching a signed and unsigned value
  --no-discriminators                                - Disable generation of discriminator information.
  --num-shuffles=<uint>                              - Number of times to shuffle and verify use-lists
  --nvptx-sched4reg                                  - NVPTX Specific: schedule for register pressue
  --poison-checking-function-local                   - Check that returns are non-poison (for testing)
  --r600-ir-structurize                              - Use StructurizeCFG IR pass
  --rdf-dump                                         - 
  --rdf-limit=<uint>                                 - 
  --runtime-counter-relocation                       - Enable relocating counters at runtime.
  --safepoint-ir-verifier-print-only                 - 
  --sample-profile-check-record-coverage=<N>         - Emit a warning if less than N% of records in the input profile are matched to the IR.
  --sample-profile-check-sample-coverage=<N>         - Emit a warning if less than N% of samples in the input profile are matched to the IR.
  --sample-profile-max-propagate-iterations=<uint>   - Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.
  --save-temps                                       - Save temp files
  --speculative-counter-promotion-max-exiting=<uint> - The max number of exiting blocks of a loop to allow  speculative counter promotion
  --speculative-counter-promotion-to-loop            - When the option is false, if the target block is in a loop, the promotion will be disallowed unless the promoted counter  update can be further/iteratively promoted into an acyclic  region.
  --summary-file=<string>                            - The summary file to use for function importing.
  --tail-predication=<value>                         - MVE tail-predication options
    =disabled                                        -   Don't tail-predicate loops
    =enabled-no-reductions                           -   Enable tail-predication, but not for reduction loops
    =enabled                                         -   Enable tail-predication, including reduction loops
    =force-enabled-no-reductions                     -   Enable tail-predication, but not for reduction loops, and force this which might be unsafe
    =force-enabled                                   -   Enable tail-predication, including reduction loops, and force this which might be unsafe
  --threads=<int>                                    - 
  --verify-region-info                               - Verify region info (time consuming)
  --vp-counters-per-site=<number>                    - The average number of profile counters allocated per value profiling site.
  --vp-static-alloc                                  - Do static counter allocation for value profiler
  --x86-align-branch=<string>                        - Specify types of branches to align (plus separated list of types):
                                                       jcc      indicates conditional jumps
                                                       fused    indicates fused conditional jumps
                                                       jmp      indicates direct unconditional jumps
                                                       call     indicates direct and indirect calls
                                                       ret      indicates rets
                                                       indirect indicates indirect unconditional jumps
  --x86-align-branch-boundary=<uint>                 - Control how the assembler should align branches with NOP. If the boundary's size is not 0, it should be a power of 2 and no less than 32. Branches will be aligned to prevent from being across or against the boundary of specified size. The default value 0 does not align branches.
  --x86-branches-within-32B-boundaries               - Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.  May break assumptions about labels corresponding to particular instructions, and should be used with caution.
  --x86-pad-max-prefix-size=<uint>                   - Maximum number of prefixes to use for padding

Generic Options:

  --help                                             - Display available options (--help-hidden for more)
  --help-list                                        - Display list of available options (--help-list-hidden for more)
  --version                                          - Display the version of this program

Polly Options:
Configure the polly loop optimizer

  --polly                                            - Enable the polly optimizer (only at -O3)
  --polly-2nd-level-tiling                           - Enable a 2nd level loop of loop tiling
  --polly-ast-print-accesses                         - Print memory access functions
  --polly-context=<isl parameter set>                - Provide additional constraints on the context parameters
  --polly-dce-precise-steps=<int>                    - The number of precise steps between two approximating iterations. (A value of -1 schedules another approximation stage before the actual dead code elimination.
  --polly-delicm-max-ops=<int>                       - Maximum number of isl operations to invest for lifetime analysis; 0=no limit
  --polly-detect-full-functions                      - Allow the detection of full functions
  --polly-dump-after                                 - Dump module after Polly transformations into a file suffixed with "-after"
  --polly-dump-after-file=<string>                   - Dump module after Polly transformations to the given file
  --polly-dump-before                                - Dump module before Polly transformations into a file suffixed with "-before"
  --polly-dump-before-file=<string>                  - Dump module before Polly transformations to the given file
  --polly-enable-simplify                            - Simplify SCoP after optimizations
  --polly-ignore-func=<string>                       - Ignore functions that match a regex. Multiple regexes can be comma separated. Scop detection will ignore all functions that match ANY of the regexes provided.
  --polly-isl-arg=<argument>                         - Option passed to ISL
  --polly-on-isl-error-abort                         - Abort if an isl error is encountered
  --polly-only-func=<string>                         - Only run on functions that match a regex. Multiple regexes can be comma separated. Scop detection will run on all functions that match ANY of the regexes provided.
  --polly-only-region=<identifier>                   - Only run on certain regions (The provided identifier must appear in the name of the region's entry block
  --polly-only-scop-detection                        - Only run scop detection, but no other optimizations
  --polly-optimized-scops                            - Polly - Dump polyhedral description of Scops optimized with the isl scheduling optimizer and the set of post-scheduling transformations is applied on the schedule tree
  --polly-parallel                                   - Generate thread parallel code (isl codegen only)
  --polly-parallel-fo