OS Manuals

/usr/bin/mlir-opt

Low-level virtual machine 14 - core frameworks

From llvm-14 14.0.6-r12 (enterprise-packages), captured 2026-11-08 by running mlir-opt --help (exit 0). permalink

OVERVIEW: MLIR modular optimizer driver

Available Dialects: acc, affine, amx, arith, arm_neon, arm_sve, async, bufferization, builtin, complex, dlti, emitc, gpu, linalg, llvm, math, memref, nvvm, omp, pdl, pdl_interp, quant, rocdl, scf, shape, sparse_tensor, spv, std, tensor, tosa, vector, x86vector
USAGE: mlir-opt [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
  --aarch64-use-aa                                     - Enable the use of AA during codegen.
  --abort-on-max-devirt-iterations-reached             - Abort when the max iterations for devirtualization CGSCC repeat pass is reached
  --allow-ginsert-as-artifact                          - Allow G_INSERT to be considered an artifact. Hack around AMDGPU test infinite loops.
  --allow-unregistered-dialect                         - Allow operation with no registered dialects
  --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-flat-scratch                         - Use flat scratch 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-sdwa-peephole                               - Enable SDWA peepholer
  --amdgpu-use-aa-in-codegen                           - Enable the use of AA during codegen.
  --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-cold-paths=<number>                       - Hide blocks with relative frequency below the given value
  --cfg-hide-deoptimize-paths                          -
  --cfg-hide-unreachable-paths                         -
  --cost-kind=<value>                                  - Target cost kind
    =throughput                                        -   Reciprocal throughput
    =latency                                           -   Instruction latency
    =code-size                                         -   Code size
    =size-latency                                      -   Code size and latency
  --debug-info-correlate                               - Use debug info to correlate profiles.
  --debugify-level=<value>                             - Kind of debug info to add
    =locations                                         -   Locations only
    =location+variables                                -   Locations and Variables
  --debugify-quiet                                     - Suppress verbose debugify output
  --disable-i2p-p2i-opt                                - Disables inttoptr/ptrtoint roundtrip optimization
  --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
  --dot-cfg-mssa=<file name for generated dot file>    - file name for generated dot file
  --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
  --enable-split-backedge-in-load-pre                  -
  --experimental-debug-variable-locations              - Use experimental new value-tracking variable locations
  --fatal-warnings                                     - Treat warnings as errors
  --fs-profile-debug-bw-threshold=<uint>               - Only show debug message if the source branch weight is greater  than this value.
  --fs-profile-debug-prob-diff-threshold=<uint>        - Only show debug message if the branch probility is greater than this value (in percentage).
  --generate-merged-base-profiles                      - When generating nested context-sensitive profiles, always generate extra base profile for function with all its context profiles merged into it.
  --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=<value>                          - Embed LLVM bitcode in object files produced by LTO
    =none                                              -   Do not embed
    =optimized                                         -   Embed after all optimization passes
    =post-merge-pre-opt                                -   Embed post merge, but before optimizations
  --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
  --mcabac                                             - tbd
  --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
    =v68                                               -   Build for HVX v68
    =v69                                               -   Build for HVX v69
  --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
  --mlir-disable-threading                             - Disable multi-threading within MLIR, overrides any further call to MLIRContext::enableMultiThreading()
  --mlir-elide-elementsattrs-if-larger=<uint>          - Elide ElementsAttrs with "..." that have more elements than the given upper limit
  --mlir-pretty-debuginfo                              - Print pretty debug info in MLIR output
  --mlir-print-debuginfo                               - Print debug info in MLIR output
  --mlir-print-elementsattrs-with-hex-if-larger=<long> - Print DenseElementsAttrs with a hex string that have more elements than the given upper limit (use -1 to disable)
  --mlir-print-local-scope                             - Print with local scope and inline information (eliding aliases for attributes, types, and locations
  --mlir-print-op-on-diagnostic                        - When a diagnostic is emitted on an operation, also print the operation as an attached note
  --mlir-print-stacktrace-on-diagnostic                - When a diagnostic is emitted, also print the stack trace as an attached note
  --mlir-timing                                        - Display execution times
  --mlir-timing-display=<value>                        - Display method for timing data
    =list                                              -   display the results in a list sorted by total time
    =tree                                              -   display the results ina with a nested tree view
  --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-type-check                                      - Suppress type errors (Wasm)
  --no-warn                                            - Suppress all warnings
  --nvptx-sched4reg                                    - NVPTX Specific: schedule for register pressue
  -o=<filename>                                        - Output filename
  --opaque-pointers                                    - Use opaque pointers
  --pass-pipeline-crash-reproducer=<string>            - Generate a .mlir reproducer file at the given output path if the pass manager crashes or fails
  --pass-pipeline-local-reproducer                     - When generating a crash reproducer, attempt to generated a reproducer with the smallest pipeline.
  --pass-statistics                                    - Display the statistics of each pass
  --pass-statistics-display=<value>                    - Display method for pass statistics
    =list                                              -   display the results in a merged list sorted by pass name
    =pipeline                                          -   display the results with a nested pipeline view
  --poison-checking-function-local                     - Check that returns are non-poison (for testing)
  --print-ir-after=<pass-arg>                          - Print IR after specified passes
  --print-ir-after-all                                 - Print IR after each pass
  --print-ir-after-change                              - When printing the IR after a pass, only print if the IR changed
  --print-ir-after-failure                             - When printing the IR after a pass, only print if the pass failed
  --print-ir-before=<pass-arg>                         - Print IR before specified passes
  --print-ir-before-all                                - Print IR before each pass
  --print-ir-module-scope                              - When printing IR for print-ir-[before|after]{-all} always print the top-level operation
  --print-pipeline-passes                              - Print a '-passes' compatible string describing the pipeline (best-effort only).
  --r600-ir-structurize                                - Use StructurizeCFG IR pass
  --rdf-dump                                           -
  --rdf-limit=<uint>                                   -
  --run-reproducer                                     - Append the command line options of the reproducer
  --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.
  Compiler passes to run
    --pass-pipeline                                    -   A textual description of a pass pipeline to run
    Passes:
      --affine-data-copy-generate                      -   Generate explicit copying for affine memory operations
        --fast-mem-capacity=<ulong>                    - Set fast memory space capacity in KiB (default: unlimited)
        --fast-mem-space=<uint>                        - Fast memory space identifier for copy generation (default: 1)
        --generate-dma                                 - Generate DMA instead of point-wise copy
        --min-dma-transfer=<int>                       - Minimum DMA transfer size supported by the target in bytes
        --skip-non-unit-stride-loops                   - Testing purposes: avoid non-unit stride loop choice depths for copy placement
        --slow-mem-space=<uint>                        - Slow memory space identifier for copy generation (default: 0)
        --tag-mem-space=<uint>                         - Tag memory space identifier for copy generation (default: 0)
      --affine-loop-coalescing                         -   Coalesce nested loops with independent bounds into a single loop
      --affine-loop-fusion                             -   Fuse affine loop nests
        --fusion-compute-tolerance=<number>            - Fractional increase in additional computation tolerated while fusing
        --fusion-fast-mem-space=<uint>                 - Faster memory space number to promote fusion buffers to
        --fusion-local-buf-threshold=<ulong>           - Threshold size (KiB) for promoting local buffers to fast memory space
        --fusion-maximal                               - Enables maximal loop fusion
        --mode=<value>                                 - fusion mode to attempt
    =greedy                                      -   Perform greedy (both producer-consumer and sibling)  fusion
    =producer                                    -   Perform only producer-consumer fusion
    =sibling                                     -   Perform only sibling fusion
      --affine-loop-invariant-code-motion              -   Hoist loop invariant instructions outside of affine loops
      --affine-loop-normalize                          -   Apply normalization transformations to affine loop-like ops
      --affine-loop-tile                               -   Tile affine loop nests
        --cache-size=<ulong>                           - Set size of cache to tile for in KiB
        --separate                                     - Separate full and partial tiles
        --tile-size=<uint>                             - Use this tile size for all loops
        --tile-sizes=<uint>                            - List of tile sizes for each perfect nest (overridden by -tile-size)
      --affine-loop-unroll                             -   Unroll affine loops
        --unroll-factor=<uint>                         - Use this unroll factor for all loops being unrolled
        --unroll-full                                  - Fully unroll loops
        --unroll-full-threshold=<uint>                 - Unroll all loops with trip count less than or equal to this
        --unroll-num-reps=<uint>                       - Unroll innermost loops repeatedly this many times
        --unroll-up-to-factor                          - Allow unrolling up to the factor specified
      --affine-loop-unroll-jam                         -   Unroll and jam affine loops
        --unroll-jam-factor=<uint>                     - Use this unroll jam factor for all loops (default 4)
      --affine-parallelize                             -   Convert affine.for ops into 1-D affine.parallel
        --max-nested=<uint>                            - Maximum number of nested parallel loops to produce. Defaults to unlimited (UINT_MAX).
        --parallel-reductions                          - Whether to parallelize reduction loops. Defaults to false.
      --affine-pipeline-data-transfer                  -   Pipeline non-blocking data transfers between explicitly managed levels of the memory hierarchy
      --affine-scalrep                                 -   Replace affine memref acceses by scalars by forwarding stores to loads and eliminating redundant loads
      --affine-simplify-structures                     -   Simplify affine expressions in maps/sets and normalize memrefs
      --affine-super-vectorize                         -   Vectorize to a target independent n-D vector abstraction
        --test-fastest-varying=<long>                  - Specify a 1-D, 2-D or 3-D pattern of fastest varying memory dimensions to match. See defaultPatterns in Vectorize.cpp for a description and examples. This is used for testing purposes
        --vectorize-reductions                         - Vectorize known reductions expressed via iter_args. Switched off by default.
        --virtual-vector-size=<long>                   - Specify an n-D virtual vector size for vectorization
      --arith-bufferize                                -   Bufferize Arithmetic dialect ops.
        --alignment=<uint>                             - Create global memrefs with a specified alignment
      --arith-expand                                   -   Legalize Arithmetic ops to be convertible to LLVM.
      --arm-neon-2d-to-intr                            -   Convert Arm NEON structured ops to intrinsics
      --async-parallel-for                             -   Convert scf.parallel operations to multiple async compute ops executed concurrently for non-overlapping iteration ranges
        --async-dispatch                               - Dispatch async compute tasks using recursive work splitting. If `false` async compute tasks will be launched using simple for loop in the caller thread.
        --min-task-size=<int>                          - The minimum task size for sharding parallel operation.
        --num-workers=<int>                            - The number of available workers to execute async operations. If `-1` the value will be retrieved from the runtime.
      --async-runtime-policy-based-ref-counting        -   Policy based reference counting for Async runtime operations
      --async-runtime-ref-counting                     -   Automatic reference counting for Async runtime operations
      --async-runtime-ref-counting-opt                 -   Optimize automatic reference counting operations for theAsync runtime by removing redundant operations
      --async-to-async-runtime                         -   Lower high level async operations (e.g. async.execute) to theexplicit async.runtime and async.coro operations
        --eliminate-blocking-await-ops                 - Rewrite functions with blocking async.runtime.await as coroutines with async.runtime.await_and_resume.
      --buffer-deallocation                            -   Adds all required dealloc operations for all allocations in the input program
      --buffer-hoisting                                -   Optimizes placement of allocation operations by moving them into common dominators and out of nested regions
      --buffer-loop-hoisting                           -   Optimizes placement of allocation operations by moving them out of loop nests
      --buffer-results-to-out-params                   -   Converts memref-typed function results to out-params
      --canonicalize                                   -   Canonicalize operations
        --disable-patterns=<string>                    - Labels of patterns that should be filtered out during application
        --enable-patterns=<string>                     - Labels of patterns that should be used during application, all other patterns are filtered out
        --max-iterations=<long>                        - Seed the worklist in general top-down order
        --region-simplify                              - Seed the worklist in general top-down order
        --top-down                                     - Seed the worklist in general top-down order
      --control-flow-sink                              -   Sink operations into conditional blocks
      --convert-affine-for-to-gpu                      -   Convert top-level AffineFor Ops to GPU kernels
        --gpu-block-dims=<uint>                        - Number of GPU block dimensions for mapping
        --gpu-thread-dims=<uint>                       - Number of GPU thread dimensions for mapping
      --convert-arith-to-llvm                          -   Convert Arithmetic dialect to LLVM dialect
        --index-bitwidth=<uint>                        - Bitwidth of the index type, 0 to use size of machine word
      --convert-arith-to-spirv                         -   Convert Arithmetic dialect to SPIR-V dialect
        --emulate-non-32-bit-scalar-types              - Emulate non-32-bit scalar types with 32-bit ones if missing native support
      --convert-async-to-llvm                          -   Convert the operations from the async dialect into the LLVM dialect
      --convert-bufferization-to-memref                -   Convert operations from the Bufferization dialect to the MemRef dialect
      --convert-complex-to-llvm                        -   Convert Complex dialect to LLVM dialect
      --convert-complex-to-standard                    -   Convert Complex dialect to standard dialect
      --convert-elementwise-to-linalg                  -   Convert ElementwiseMappable ops to linalg
      --convert-gpu-launch-to-vulkan-launch            -   Convert gpu.launch_func to vulkanLaunch external call
      --convert-gpu-to-nvvm                            -   Generate NVVM operations for gpu operations
        --index-bitwidth=<uint>                        - Bitwidth of the index type, 0 to use size of machine word
      --convert-gpu-to-rocdl                           -   Generate ROCDL operations for gpu operations
        --index-bitwidth=<uint>                        - Bitwidth of the index type, 0 to use size of machine word
        --runtime=<value>                              - Runtime code will be run on (default is Unknown, can also use HIP or OpenCl)
    =unknown                                     -   Unknown (default)
    =HIP                                         -   HIP
    =OpenCL                                      -   OpenCL
      --convert-gpu-to-spirv                           -   Convert GPU dialect to SPIR-V dialect
      --convert-linalg-tiled-loops-to-scf              -   Lower linalg tiled loops to SCF loops and parallel loops
      --convert-linalg-to-affine-loops                 -   Lower the operations from the linalg dialect into affine loops
      --convert-linalg-to-llvm                         -   Convert the operations from the linalg dialect into the LLVM dialect
      --convert-linalg-to-loops                        -   Lower the operations from the linalg dialect into loops
      --convert-linalg-to-parallel-loops               -   Lower the operations from the linalg dialect into parallel loops
      --convert-linalg-to-spirv                        -   Convert Linalg dialect to SPIR-V dialect
      --convert-linalg-to-std                          -   Convert the operations from the linalg dialect into the Standard dialect
      --convert-math-to-libm                           -   Convert Math dialect to libm calls
      --convert-math-to-llvm                           -   Convert Math dialect to LLVM dialect
      --convert-math-to-spirv                          -   Convert Math dialect to SPIR-V dialect
      --convert-memref-to-llvm                         -   Convert operations from the MemRef dialect to the LLVM dialect
        --index-bitwidth=<uint>                        - Bitwidth of the index type, 0 to use size of machine word
        --use-aligned-alloc                            - Use aligned_alloc in place of malloc for heap allocations
      --convert-memref-to-spirv                        -   Convert MemRef dialect to SPIR-V dialect
        --bool-num-bits=<int>                          - The number of bits to store a boolean value
      --convert-openacc-to-llvm                        -   Convert the OpenACC ops to LLVM dialect
      --convert-openacc-to-scf                         -   Convert the OpenACC ops to OpenACC with SCF dialect
      --convert-openmp-to-llvm                         -   Convert the OpenMP ops to OpenMP ops with LLVM dialect
      --convert-parallel-loops-to-gpu                  -   Convert mapped scf.parallel ops to gpu launch operations
      --convert-pdl-to-pdl-interp                      -   Convert PDL ops to PDL interpreter ops
      --convert-scf-to-openmp                          -   Convert SCF parallel loop to OpenMP parallel + workshare constructs.
      --convert-scf-to-spirv                           -   Convert SCF dialect to SPIR-V dialect.
      --convert-scf-to-std                             -   Convert SCF dialect to Standard dialect, replacing structured control flow with a CFG
      --convert-shape-constraints                      -   Convert shape constraint operations to the standard dialect
      --convert-shape-to-std                           -   Convert operations from the shape dialect into the standard dialect
      --convert-spirv-to-llvm                          -   Convert SPIR-V dialect to LLVM dialect
      --convert-std-to-llvm                            -   Convert scalar and vector operations from the Standard to the LLVM dialect
        --data-layout=<string>                         - String description (LLVM format) of the data layout that is expected on the produced module
        --emit-c-wrappers                              - Emit wrappers for C-compatible pointer-to-struct memref descriptors
        --index-bitwidth=<uint>                        - Bitwidth of the index type, 0 to use size of machine word
        --use-bare-ptr-memref-call-conv                - Replace FuncOp's MemRef arguments with bare pointers to the MemRef element types
      --convert-std-to-spirv                           -   Convert Standard dialect to SPIR-V dialect
        --emulate-non-32-bit-scalar-types              - Emulate non-32-bit scalar types with 32-bit ones if missing native support
      --convert-vector-to-gpu                          -   Lower the operations from the vector dialect into the GPU dialect
      --convert-vector-to-llvm                         -   Lower the operations from the vector dialect into the LLVM dialect
        --enable-amx                                   - Enables the use of AMX dialect while lowering the vector dialect.
        --enable-arm-neon                              - Enables the use of ArmNeon dialect while lowering the vector dialect.
        --enable-arm-sve                               - Enables the use of ArmSVE dialect while lowering the vector dialect.
        --enable-index-optimizations                   - Allows compiler to assume indices fit in 32-bit if that yields faster code
        --enable-x86vector                             - Enables the use of X86Vector dialect while lowering the vector dialect.
        --reassociate-fp-reductions                    - Allows llvm to reassociate floating-point reductions for speed
      --convert-vector-to-rocdl                        -   Lower the operations from the vector dialect into the ROCDL dialect
      --convert-vector-to-scf                          -   Lower the operations from the vector dialect into the SCF dialect
        --full-unroll                                  - Perform full unrolling when converting vector transfers to SCF
        --lower-permutation-maps                       - Replace permutation maps with vector transposes/broadcasts before lowering transfer ops
        --lower-tensors                                - Lower transfer ops that operate on tensors
        --target-rank=<uint>                           - Target vector rank to which transfer ops should be lowered
      --convert-vector-to-spirv                        -   Convert Vector dialect to SPIR-V dialect
      --cse                                            -   Eliminate common sub-expressions
      --decorate-spirv-composite-type-layout           -   Decorate SPIR-V composite type with layout info
      --finalizing-bufferize                           -   Finalize a partial bufferization
      --fold-memref-subview-ops                        -   Fold memref.subview ops into consumer load/store ops
      --func-bufferize                                 -   Bufferize func/call/return ops
      --gpu-async-region                               -   Make GPU ops async
      --gpu-kernel-outlining                           -   Outline gpu.launch bodies to kernel functions
        --data-layout-str=<string>                     - String containing the data layout specification to be attached to the GPU kernel module
      --gpu-to-llvm                                    -   Convert GPU dialect to LLVM dialect with GPU runtime calls
        --gpu-binary-annotation=<string>               - Annotation attribute string for GPU binary
      --inline                                         -   Inline function calls
        --default-pipeline=<string>                    - The default optimizer pipeline used for callables
        --max-iterations=<uint>                        - Maximum number of iterations when inlining within an SCC
        --op-pipelines=<string>                        - Callable operation specific optimizer pipelines (in the form of `dialect.op(pipeline)`)
      --launch-func-to-vulkan                          -   Convert vulkanLaunch external call to Vulkan runtime external calls
      --linalg-bufferize                               -   Bufferize the linalg dialect
      --linalg-comprehensive-module-bufferize          -   Bufferize (tensor into memref) for a Module.
        --allow-return-memref                          - Allows the return of memrefs (for testing purposes only)
        --allow-unknown-ops                            - Allows unknown (not bufferizable) ops in the input IR.
        --analysis-fuzzer-seed=<uint>                  - Analyze ops in random order with a given seed (fuzzer)
        --create-deallocs                              - Specify if buffers should be deallocated. For compatibility with core bufferization passes.
        --fully-dynamic-layout-maps                    - Generate MemRef types with dynamic offset+strides by default.
        --init-tensor-elimination                      - (Experimental) Try to eliminate init_tensor operations that are anchored at an insert_slice op
        --print-conflicts                              - Annotates IR with RaW conflicts. Requires test-analysis-only.
        --test-analysis-only                           - Only runs inplaceability analysis (for testing purposes only)
        --use-alloca                                   - Use stack allocations for memrefs (for testing purposes only)
        --use-memref.copy                              - Use a copy operation implemented as a Linalg op.
      --linalg-detensorize                             -   Detensorize linalg ops
        --aggressive-mode                              - Detensorize all ops that qualify for detensoring along with branch operands and basic-block arguments.
      --linalg-fold-reshape-ops-by-linearization       -   Fold TensorReshapeOps with generic/indexed generic ops by linearization
        --allow-folding-unit-dim-reshapes              - Allow fusing linalg.tensor_reshape ops that performs unit dimension collapsing
      --linalg-fold-unit-extent-dims                   -   Remove unit-extent dimension in Linalg ops on tensors
        --fold-one-trip-loops-only                     - Only folds the one-trip loops from Linalg ops on tensors (for testing purposes only)
      --linalg-fuse-elementwise-ops                    -   Fuse elementwise operations on tensors
        --allow-folding-unit-dim-reshapes              - Allow fusing linalg.tensor_reshape ops that performs unit dimension collapsing
      --linalg-generalize-named-ops                    -   Convert named ops into generic ops
      --linalg-inline-scalar-operands                  -   Inline scalar operands into linalg generic ops
      --linalg-named-op-conversion                     -   Convert from one named linalg op to another.
      --linalg-promote-subviews                        -   Promote subview ops to local buffers
        --test-promote-dynamic                         - Test generation of dynamic promoted buffers
        --test-use-alloca                              - Test generation of alloca'ed buffers.
      --linalg-strategy-decompose-pass                 -   Configurable pass to apply pattern-based generalization.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
      --linalg-strategy-enable-pass                    -   Configurable pass to enable the application of other pattern-based linalg passes.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
      --linalg-strategy-generalize-pass                -   Configurable pass to apply pattern-based generalization.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
        --anchor-op=<string>                           - Which linalg op within the func is the anchor to latch on.
      --linalg-strategy-interchange-pass               -   Configurable pass to apply pattern-based iterator interchange.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
      --linalg-strategy-lower-vectors-pass             -   Configurable pass to lower vector operations.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
      --linalg-strategy-pad-pass                       -   Configurable pass to apply padding and hoisting.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
        --anchor-op=<string>                           - Which linalg op within the func is the anchor to latch on.
      --linalg-strategy-promote-pass                   -   Configurable pass to apply pattern-based linalg promotion.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
        --anchor-op=<string>                           - Which linalg op within the func is the anchor to latch on.
      --linalg-strategy-remove-markers-pass            -   Cleanup pass that drops markers.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
      --linalg-strategy-tile-and-fuse-pass             -   Configurable pass to apply pattern-based tiling and fusion.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
        --anchor-op=<string>                           - Which linalg op within the func is the anchor to latch on.
      --linalg-strategy-tile-pass                      -   Configurable pass to apply pattern-based linalg tiling.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
        --anchor-op=<string>                           - Which linalg op within the func is the anchor to latch on.
      --linalg-strategy-vectorize-pass                 -   Configurable pass to apply pattern-based linalg vectorization.
        --anchor-func=<string>                         - Which func op is the anchor to latch on.
        --anchor-op=<string>                           - Which linalg op within the func is the anchor to latch on.
        --vectorize-padding                            - Enable vectorization of padding ops.
      --linalg-tile                                    -   Tile operations in the linalg dialect
        --distribution-types=<string>                  - DistributionTypes (if loop-type=tiled_loop)
        --loop-type=<string>                           - Specify the type of loops to generate: for, parallel or tiled_loop
        --tile-sizes=<long>                            - Tile sizes
      --llvm-legalize-for-export                       -   Legalize LLVM dialect to be convertible to LLVM IR
      --loop-invariant-code-motion                     -   Hoist loop invariant instructions outside of the loop
      --lower-affine                                   -   Lower Affine operations to a combination of Standard and SCF operations
      --lower-host-to-llvm                             -   Lowers the host module code and `gpu.launch_func` to LLVM
      --memref-expand                                  -   Legalize memref operations to be convertible to LLVM.
      --normalize-memrefs                              -   Normalize memrefs
      --print-op-stats                                 -   Print statistics of operations
      --promote-buffers-to-stack                       -   Promotes heap-based allocations to automatically managed stack-based allocations
        --max-alloc-size-in-bytes=<uint>               - Maximal size in bytes to promote allocations to stack.
        --max-rank-of-allocated-memref=<uint>          - Maximal memref rank to promote dynamic buffers.
      --quant-convert-const                            -   Converts constants followed by qbarrier to actual quantized values
      --quant-convert-simulated-quantization           -   Converts training-time simulated quantization ops to corresponding quantize/dequantize casts
      --reconcile-unrealized-casts                     -   Simplify and eliminate unrealized conversion casts
      --remove-shape-constraints                       -   Replace all cstr_ ops with a true witness
      --resolve-ranked-shaped-type-result-dims         -   Resolve memref.dim of result values of ranked shape type
      --resolve-shaped-type-result-dims                -   Resolve memref.dim of result values
      --sccp                                           -   Sparse Conditional Constant Propagation
      --scf-bufferize                                  -   Bufferize the scf dialect.
      --scf-for-loop-canonicalization                  -   Canonicalize operations within scf.for loop bodies
      --scf-for-loop-peeling                           -   Peel `for` loops at their upper bounds.
        --skip-partial                                 - Do not peel loops inside of the last, partial iteration of another already peeled loop.
      --scf-for-loop-range-folding                     -   Fold add/mul ops into loop range
      --scf-for-loop-specialization                    -   Specialize `for` loops for vectorization
      --scf-for-to-while                               -   Convert SCF for loops to SCF while loops
      --scf-parallel-loop-collapsing                   -   Collapse parallel loops to use less induction variables
        --collapsed-indices-0=<uint>                   - Which loop indices to combine 0th loop index
        --collapsed-indices-1=<uint>                   - Which loop indices to combine into the position 1 loop index
        --collapsed-indices-2=<uint>                   - Which loop indices to combine into the position 2 loop index
      --scf-parallel-loop-fusion                       -   Fuse adjacent parallel loops
      --scf-parallel-loop-specialization               -   Specialize parallel loops for vectorization
      --scf-parallel-loop-tiling                       -   Tile parallel loops
        --no-min-max-bounds                            - Perform tiling with fixed upper bound with inbound check inside the internal loops
        --parallel-loop-tile-sizes=<long>              - Factors to tile parallel loops by
      --shape-bufferize                                -   Bufferize the shape dialect.
      --shape-to-shape-lowering                        -   Legalize Shape dialect to be convertible to Standard
      --snapshot-op-locations                          -   Generate new locations from the current IR
        --filename=<string>                            - The filename to print the generated IR
        --tag=<string>                                 - A tag to use when fusing the new locations with the original. If unset, the locations are replaced.
      --sparse-tensor-conversion                       -   Apply conversion rules to sparse tensor primitives and types
      --sparsification                                 -   Automatically generate sparse tensor code from sparse tensor types
        --enable-simd-index32                          - Enable i32 indexing into vectors (for efficiency)
        --parallelization-strategy=<int>               - Set the parallelization strategy
        --vectorization-strategy=<int>                 - Set the vectorization strategy
        --vl=<int>                                     - Set the vector length
      --spirv-lower-abi-attrs                          -   Decorate SPIR-V composite type with layout info
      --spirv-rewrite-inserts                          -   Rewrite sequential chains of spv.CompositeInsert operations into spv.CompositeConstruct operations
      --spirv-update-vce                               -   Deduce and attach minimal (version, capabilities, extensions) requirements to spv.module ops
      --std-bufferize                                  -   Bufferize the std dialect
      --strip-debuginfo                                -   Strip debug info from all operations
      --symbol-dce                                     -   Eliminate dead symbols
      --tensor-bufferize                               -   Bufferize the `tensor` dialect
      --tosa-infer-shapes                              -   Propagate shapes across TOSA operations
      --tosa-make-broadcastable                        -   TOSA rank Reshape to enable Broadcasting
      --tosa-optional-decompositions                   -   Applies Tosa operations optional decompositions
      --tosa-to-linalg                                 -   Lower TOSA to LinAlg on tensors
      --tosa-to-linalg-named                           -   Lower TOSA to LinAlg named operations
      --tosa-to-scf                                    -   Lower TOSA to the SCF dialect
      --tosa-to-standard                               -   Lower TOSA to the Standard dialect
      --view-op-graph                                  -   Print Graphviz visualization of an operation
        --max-label-len=<uint>                         - Limit attribute/type length to number of chars
        --print-attrs                                  - Print attributes of operations
        --print-control-flow-edges                     - Print control flow edges
        --print-data-flow-edges                        - Print data flow edges
        --print-result-types                           - Print result types of operations
    Pass Pipelines:
      --sparse-compiler                                -   The standard pipeline for taking sparsity-agnostic IR using the sparse-tensor type, and lowering it to LLVM IR with concrete representations and algorithms for sparse tensors.
        --enable-simd-index32                          - Enable i32 indexing into vectors (for efficiency)
        --parallelization-strategy=<int>               - Set the parallelization strategy
        --vectorization-strategy=<int>                 - Set the vectorization strategy
        --vl=<int>                                     - Set the vector length
  --show-dialects                                      - Print the list of registered dialects
  --skip-ret-exit-block                                - Suppress counter promotion if exit blocks contain ret.
  --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-input-file                                   - Split the input file into pieces and process each chunk independently
  --summary-file=<string>                              - The summary file to use for function importing.
  --tail-predication=<value>                           - MVE tail-predication pass 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
  --thinlto-assume-merged                              - Assume the input has already undergone ThinLTO function importing and the other pre-optimization pipeline changes.
  --threads=<int>                                      -
  --verify-diagnostics                                 - Check that emitted diagnostics match expected-* lines on the corresponding line
  --verify-each                                        - Run the verifier after each transformation pass
  --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
  --wasm-enable-eh                                     - WebAssembly exception handling
  --wasm-enable-sjlj                                   - WebAssembly setjmp/longjmp handling
  --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
Options (404)
OptionDescriptionSource
--color- Use colors in output (default=autodetect)help
--aarch64-neon-syntax value- Choose style of NEON code to emit from AArch64 backend: =generic - Emit generic NEON assembly =apple - Emit Apple-style NEON assemblyhelp
--aarch64-use-aa- Enable the use of AA during codegen.help
--abort-on-max-devirt-iterations-reached- Abort when the max iterations for devirtualization CGSCC repeat pass is reachedhelp
--allow-ginsert-as-artifact- Allow G_INSERT to be considered an artifact.help
--allow-unregistered-dialect- Allow operation with no registered dialectshelp
--amdgpu-bypass-slow-div- Skip 64-bit divide for dynamic 32-bit valueshelp
--amdgpu-disable-loop-alignment- Do not align and prefetch loopshelp
--amdgpu-disable-power-sched- Disable scheduling to minimize mAI power burstshelp
--amdgpu-dpp-combine- Enable DPP combinerhelp
--amdgpu-dump-hsa-metadata- Dump AMDGPU HSA Metadatahelp
--amdgpu-enable-flat-scratch- Use flat scratch instructionshelp
--amdgpu-enable-merge-m0- Merge and hoist M0 initializationshelp
--amdgpu-promote-alloca-to-vector-limit uint- Maximum byte size to consider promote alloca to vectorhelp
--amdgpu-sdwa-peephole- Enable SDWA peepholerhelp
--amdgpu-use-aa-in-codegen- Enable the use of AA during codegen.help
--amdgpu-verify-hsa-metadata- Verify AMDGPU HSA Metadatahelp
--amdgpu-vgpr-index-mode- Use GPR indexing mode instead of movrel for vector indexinghelp
--arm-add-build-attributes-help
--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 -…help
--asm-show-inst- Emit internal instruction representation to assembly filehelp
--atomic-counter-update-promoted- Do counter update using atomic fetch add for promoted counters onlyhelp
--atomic-first-counter- Use atomic fetch add for first counter in a function (usually the entry counter)help
--bounds-checking-single-trap- Use one trap block per functionhelp
--cfg-hide-cold-paths number- Hide blocks with relative frequency below the given valuehelp
--cfg-hide-deoptimize-paths-help
--cfg-hide-unreachable-paths-help
--cost-kind value- Target cost kind =throughput - Reciprocal throughput =latency - Instruction latency =code-size - Code size =size-latency - Code size and latencyhelp
--debug-info-correlate- Use debug info to correlate profiles.help
--debugify-level value- Kind of debug info to add =locations - Locations only =location+variables - Locations and Variableshelp
--debugify-quiet- Suppress verbose debugify outputhelp
--disable-i2p-p2i-opt- Disables inttoptr/ptrtoint roundtrip optimizationhelp
--disable-promote-alloca-to-lds- Disable promote alloca to LDShelp
--disable-promote-alloca-to-vector- Disable promote alloca to vectorhelp
--do-counter-promotion- Do counter register promotionhelp
--dot-cfg-mssa file- file name for generated dot filehelp
--dwarf-version int- Dwarf versionhelp
--dwarf64- Generate debugging info in the 64-bit DWARF formathelp
--emscripten-cxx-exceptions-allowed string- The list of function names in which Emscripten-style exception handling is enabled (see emscripten EMSCRIPTEN_CATCHING_ALLOWED options)help
--enable-cse-in-irtranslator- Should enable CSE in irtranslatorhelp
--enable-cse-in-legalizer- Should enable CSE in Legalizerhelp
--enable-emscripten-cxx-exceptions- WebAssembly Emscripten-style exception handlinghelp
--enable-emscripten-sjlj- WebAssembly Emscripten-style setjmp/longjmp handlinghelp
--enable-gvn-hoist- Enable the GVN hoisting pass (default = off)help
--enable-gvn-memdep-help
--enable-gvn-sink- Enable the GVN sinking pass (default = off)help
--enable-load-in-loop-pre-help
--enable-load-pre-help
--enable-loop-simplifycfg-term-folding-help
--enable-name-compression- Enable name/filename string compressionhelp
--enable-split-backedge-in-load-pre-help
--experimental-debug-variable-locations- Use experimental new value-tracking variable locationshelp
--fatal-warnings- Treat warnings as errorshelp
--fs-profile-debug-bw-threshold uint- Only show debug message if the source branch weight is greater than this value.help
--fs-profile-debug-prob-diff-threshold uint- Only show debug message if the branch probility is greater than this value (in percentage).help
--generate-merged-base-profiles- When generating nested context-sensitive profiles, always generate extra base profile for function with all its context profiles merged into it.help
--gpsize uint- Global Pointer Addressing Size.help
--hash-based-counter-split- Rename counter variable of a comdat function based on cfg hashhelp
--hot-cold-split- Enable hot-cold splitting passhelp
--import-all-index- Import all external functions in index.help
--incremental-linker-compatible- When used with filetype=obj, emit an object file which can be used with an incremental linkerhelp
--instcombine-code-sinking- Enable code sinkinghelp
--instcombine-guard-widening-window uint- How wide an instruction window to bypass looking for another guardhelp
--instcombine-max-iterations uint- Limit the maximum number of instruction combining iterationshelp
--instcombine-max-num-phis uint- Maximum number phis to handle in intptr/ptrint foldinghelp
--instcombine-maxarray-size uint- Maximum array size considered when doing a combinehelp
--instcombine-negator-enabled- Should we attempt to sink negations?help
--instcombine-negator-max-depth uint- What is the maximal lookup depth when trying to check for viability of negation sinking.help
--instrprof-atomic-counter-update-all- Make all profile counter updates atomic (for testing only)help
--internalize-public-api-file filename- A file containing list of symbol names to preservehelp
--internalize-public-api-list list- A list of symbol names to preservehelp
--iterative-counter-promotion- Allow counter promotion across the whole loop nest.help
--lto-embed-bitcode value- Embed LLVM bitcode in object files produced by LTO =none - Do not embed =optimized - Embed after all optimization passes =post-merge-pre-opt - Embed post merge, but before optimizationshelp
--lto-pass-remarks-filter regex- Only record optimization remarks from passes whose names match the given regular expressionhelp
--lto-pass-remarks-format format- The format used for serializing remarks (default: YAML)help
--lto-pass-remarks-output filename- Output filename for pass remarkshelp
--matrix-default-layout value- Sets the default matrix layout =column-major - Use column-major layout =row-major - Use row-major layouthelp
--max-counter-promotions int- Max number of allowed counter promotionshelp
--max-counter-promotions-per-loop uint- Max number counter promotions per loop to avoid increasing register pressure too muchhelp
--mc-relax-all- When used with filetype=obj, relax all fixups in the emitted object filehelp
--mcabac- tbdhelp
--merror-missing-parenthesis- Error for missing parenthesis around predicate registershelp
--merror-noncontigious-register- Error for register names that aren't contigioushelp
--mhvx- Enable Hexagon Vector eXtensionshelp
--mips-compact-branches value- MIPS Specific: Compact branch policy.help
--mips16-constant-islands- Enable mips16 constant islands.help
--mips16-hard-float- Enable mips16 hard float.help
--mir-strip-debugify-only- Should mir-strip-debug only strip debug info from debugified modules by defaulthelp
--mlir-disable-threading- Disable multi-threading within MLIR, overrides any further call to MLIRContext::enableMultiThreading()help
--mlir-elide-elementsattrs-if-larger uint- Elide ElementsAttrs with "..." that have more elements than the given upper limithelp
--mlir-pretty-debuginfo- Print pretty debug info in MLIR outputhelp
--mlir-print-debuginfo- Print debug info in MLIR outputhelp
--mlir-print-local-scope- Print with local scope and inline information (eliding aliases for attributes, types, and locationshelp
--mlir-print-op-on-diagnostic- When a diagnostic is emitted on an operation, also print the operation as an attached notehelp
--mlir-print-stacktrace-on-diagnostic- When a diagnostic is emitted, also print the stack trace as an attached notehelp
--mlir-timing- Display execution timeshelp
--mlir-timing-display value- Display method for timing data =list - display the results in a list sorted by total time =tree - display the results ina with a nested tree viewhelp
--mno-compound- Disable looking for compound instructions for Hexagonhelp
--mno-fixup- Disable fixing up resolved relocations for Hexagonhelp
--mno-ldc1-sdc1- Expand double precision loads and stores to their single precision counterpartshelp
--mno-pairing- Disable looking for duplex instructions for Hexagonhelp
--mwarn-missing-parenthesis- Warn for missing parenthesis around predicate registershelp
--mwarn-noncontigious-register- Warn for register names that arent contigioushelp
--mwarn-sign-mismatch- Warn for mismatching a signed and unsigned valuehelp
--no-deprecated-warn- Suppress all deprecated warningshelp
--no-discriminators- Disable generation of discriminator information.help
--no-type-check- Suppress type errors (Wasm)help
--no-warn- Suppress all warningshelp
--nvptx-sched4reg- NVPTX Specific: schedule for register pressuehelp
-o filename- Output filenamehelp
--opaque-pointers- Use opaque pointershelp
--pass-pipeline-crash-reproducer string- Generate a .mlir reproducer file at the given output path if the pass manager crashes or failshelp
--pass-pipeline-local-reproducer- When generating a crash reproducer, attempt to generated a reproducer with the smallest pipeline.help
--pass-statistics- Display the statistics of each passhelp
--pass-statistics-display value- Display method for pass statistics =list - display the results in a merged list sorted by pass name =pipeline - display the results with a nested pipeline viewhelp
--poison-checking-function-local- Check that returns are non-poison (for testing)help
--print-ir-after pass-arg- Print IR after specified passeshelp
--print-ir-after-all- Print IR after each passhelp
--print-ir-after-change- When printing the IR after a pass, only print if the IR changedhelp
--print-ir-after-failure- When printing the IR after a pass, only print if the pass failedhelp
--print-ir-before pass-arg- Print IR before specified passeshelp
--print-ir-before-all- Print IR before each passhelp
--print-ir-module-scope- When printing IR for print-ir-[before|after]{-all} always print the top-level operationhelp
--print-pipeline-passes- Print a '-passes' compatible string describing the pipeline (best-effort only).help
--r600-ir-structurize- Use StructurizeCFG IR passhelp
--rdf-dump-help
--rdf-limit uint-help
--run-reproducer- Append the command line options of the reproducerhelp
--runtime-counter-relocation- Enable relocating counters at runtime.help
--safepoint-ir-verifier-print-only-help
--sample-profile-check-record-coverage N- Emit a warning if less than N% of records in the input profile are matched to the IR.help
--sample-profile-check-sample-coverage N- Emit a warning if less than N% of samples in the input profile are matched to the IR.help
--sample-profile-max-propagate-iterations uint- Maximum number of iterations to go through when propagating sample block/edge weights through the CFG.help
--pass-pipeline- A textual description of a pass pipeline to runhelp
--affine-data-copy-generate- Generate explicit copying for affine memory operationshelp
--fast-mem-capacity ulong- Set fast memory space capacity in KiB (default: unlimited)help
--fast-mem-space uint- Fast memory space identifier for copy generation (default: 1)help
--generate-dma- Generate DMA instead of point-wise copyhelp
--min-dma-transfer int- Minimum DMA transfer size supported by the target in byteshelp
--skip-non-unit-stride-loops- Testing purposes: avoid non-unit stride loop choice depths for copy placementhelp
--slow-mem-space uint- Slow memory space identifier for copy generation (default: 0)help
--tag-mem-space uint- Tag memory space identifier for copy generation (default: 0)help
--affine-loop-coalescing- Coalesce nested loops with independent bounds into a single loophelp
--affine-loop-fusion- Fuse affine loop nestshelp
--fusion-compute-tolerance number- Fractional increase in additional computation tolerated while fusinghelp
--fusion-fast-mem-space uint- Faster memory space number to promote fusion buffers tohelp
--fusion-local-buf-threshold ulong- Threshold size (KiB) for promoting local buffers to fast memory spacehelp
--fusion-maximal- Enables maximal loop fusionhelp
--mode value- fusion mode to attempthelp
--affine-loop-invariant-code-motion- Hoist loop invariant instructions outside of affine loopshelp
--affine-loop-normalize- Apply normalization transformations to affine loop-like opshelp
--affine-loop-tile- Tile affine loop nestshelp
--cache-size ulong- Set size of cache to tile for in KiBhelp
--separate- Separate full and partial tileshelp
--tile-size uint- Use this tile size for all loopshelp
--tile-sizes uint- List of tile sizes for each perfect nest (overridden by -tile-size)help
--affine-loop-unroll- Unroll affine loopshelp
--unroll-factor uint- Use this unroll factor for all loops being unrolledhelp
--unroll-full- Fully unroll loopshelp
--unroll-full-threshold uint- Unroll all loops with trip count less than or equal to thishelp
--unroll-num-reps uint- Unroll innermost loops repeatedly this many timeshelp
--unroll-up-to-factor- Allow unrolling up to the factor specifiedhelp
--affine-loop-unroll-jam- Unroll and jam affine loopshelp
--unroll-jam-factor uint- Use this unroll jam factor for all loops (default 4)help
--affine-parallelize- Convert affine.for ops into 1-D affine.parallelhelp
--max-nested uint- Maximum number of nested parallel loops to produce.help
--parallel-reductions- Whether to parallelize reduction loops.help
--affine-pipeline-data-transfer- Pipeline non-blocking data transfers between explicitly managed levels of the memory hierarchyhelp
--affine-scalrep- Replace affine memref acceses by scalars by forwarding stores to loads and eliminating redundant loadshelp
--affine-simplify-structures- Simplify affine expressions in maps/sets and normalize memrefshelp
--affine-super-vectorize- Vectorize to a target independent n-D vector abstractionhelp
--test-fastest-varying long- Specify a 1-D, 2-D or 3-D pattern of fastest varying memory dimensions to match.help
--vectorize-reductions- Vectorize known reductions expressed via iter_args.help
--virtual-vector-size long- Specify an n-D virtual vector size for vectorizationhelp
--arith-bufferize- Bufferize Arithmetic dialect ops.help
--alignment uint- Create global memrefs with a specified alignmenthelp
--arith-expand- Legalize Arithmetic ops to be convertible to LLVM.help
--arm-neon-2d-to-intr- Convert Arm NEON structured ops to intrinsicshelp
--async-parallel-for- Convert scf.parallel operations to multiple async compute ops executed concurrently for non-overlapping iteration rangeshelp
--async-dispatch- Dispatch async compute tasks using recursive work splitting.help
--min-task-size int- The minimum task size for sharding parallel operation.help
--num-workers int- The number of available workers to execute async operations.help
--async-runtime-policy-based-ref-counting- Policy based reference counting for Async runtime operationshelp
--async-runtime-ref-counting- Automatic reference counting for Async runtime operationshelp
--async-runtime-ref-counting-opt- Optimize automatic reference counting operations for theAsync runtime by removing redundant operationshelp
--async-to-async-runtime- Lower high level async operations (e.g. async.execute) to theexplicit async.runtime and async.coro operationshelp
--eliminate-blocking-await-ops- Rewrite functions with blocking async.runtime.await as coroutines with async.runtime.await_and_resume.help
--buffer-deallocation- Adds all required dealloc operations for all allocations in the input programhelp
--buffer-hoisting- Optimizes placement of allocation operations by moving them into common dominators and out of nested regionshelp
--buffer-loop-hoisting- Optimizes placement of allocation operations by moving them out of loop nestshelp
--buffer-results-to-out-params- Converts memref-typed function results to out-paramshelp
--canonicalize- Canonicalize operationshelp
--disable-patterns string- Labels of patterns that should be filtered out during applicationhelp
--enable-patterns string- Labels of patterns that should be used during application, all other patterns are filtered outhelp
--max-iterations long- Seed the worklist in general top-down orderhelp
--region-simplify- Seed the worklist in general top-down orderhelp
--top-down- Seed the worklist in general top-down orderhelp
--control-flow-sink- Sink operations into conditional blockshelp
--convert-affine-for-to-gpu- Convert top-level AffineFor Ops to GPU kernelshelp
--gpu-block-dims uint- Number of GPU block dimensions for mappinghelp
--gpu-thread-dims uint- Number of GPU thread dimensions for mappinghelp
--convert-arith-to-llvm- Convert Arithmetic dialect to LLVM dialecthelp
--index-bitwidth uint- Bitwidth of the index type, 0 to use size of machine wordhelp
--convert-arith-to-spirv- Convert Arithmetic dialect to SPIR-V dialecthelp
--emulate-non-32-bit-scalar-types- Emulate non-32-bit scalar types with 32-bit ones if missing native supporthelp
--convert-async-to-llvm- Convert the operations from the async dialect into the LLVM dialecthelp
--convert-bufferization-to-memref- Convert operations from the Bufferization dialect to the MemRef dialecthelp
--convert-complex-to-llvm- Convert Complex dialect to LLVM dialecthelp
--convert-complex-to-standard- Convert Complex dialect to standard dialecthelp
--convert-elementwise-to-linalg- Convert ElementwiseMappable ops to linalghelp
--convert-gpu-launch-to-vulkan-launch- Convert gpu.launch_func to vulkanLaunch external callhelp
--convert-gpu-to-nvvm- Generate NVVM operations for gpu operationshelp
--convert-gpu-to-rocdl- Generate ROCDL operations for gpu operationshelp
--runtime value- Runtime code will be run on (default is Unknown, can also use HIP or OpenCl)help
--convert-gpu-to-spirv- Convert GPU dialect to SPIR-V dialecthelp
--convert-linalg-tiled-loops-to-scf- Lower linalg tiled loops to SCF loops and parallel loopshelp
--convert-linalg-to-affine-loops- Lower the operations from the linalg dialect into affine loopshelp
--convert-linalg-to-llvm- Convert the operations from the linalg dialect into the LLVM dialecthelp
--convert-linalg-to-loops- Lower the operations from the linalg dialect into loopshelp
--convert-linalg-to-parallel-loops- Lower the operations from the linalg dialect into parallel loopshelp
--convert-linalg-to-spirv- Convert Linalg dialect to SPIR-V dialecthelp
--convert-linalg-to-std- Convert the operations from the linalg dialect into the Standard dialecthelp
--convert-math-to-libm- Convert Math dialect to libm callshelp
--convert-math-to-llvm- Convert Math dialect to LLVM dialecthelp
--convert-math-to-spirv- Convert Math dialect to SPIR-V dialecthelp
--convert-memref-to-llvm- Convert operations from the MemRef dialect to the LLVM dialecthelp
--use-aligned-alloc- Use aligned_alloc in place of malloc for heap allocationshelp
--convert-memref-to-spirv- Convert MemRef dialect to SPIR-V dialecthelp
--bool-num-bits int- The number of bits to store a boolean valuehelp
--convert-openacc-to-llvm- Convert the OpenACC ops to LLVM dialecthelp
--convert-openacc-to-scf- Convert the OpenACC ops to OpenACC with SCF dialecthelp
--convert-openmp-to-llvm- Convert the OpenMP ops to OpenMP ops with LLVM dialecthelp
--convert-parallel-loops-to-gpu- Convert mapped scf.parallel ops to gpu launch operationshelp
--convert-pdl-to-pdl-interp- Convert PDL ops to PDL interpreter opshelp
--convert-scf-to-openmp- Convert SCF parallel loop to OpenMP parallel + workshare constructs.help
--convert-scf-to-spirv- Convert SCF dialect to SPIR-V dialect.help
--convert-scf-to-std- Convert SCF dialect to Standard dialect, replacing structured control flow with a CFGhelp
--convert-shape-constraints- Convert shape constraint operations to the standard dialecthelp
--convert-shape-to-std- Convert operations from the shape dialect into the standard dialecthelp
--convert-spirv-to-llvm- Convert SPIR-V dialect to LLVM dialecthelp
--convert-std-to-llvm- Convert scalar and vector operations from the Standard to the LLVM dialecthelp
--data-layout string- String description (LLVM format) of the data layout that is expected on the produced modulehelp
--emit-c-wrappers- Emit wrappers for C-compatible pointer-to-struct memref descriptorshelp
--use-bare-ptr-memref-call-conv- Replace FuncOp's MemRef arguments with bare pointers to the MemRef element typeshelp
--convert-std-to-spirv- Convert Standard dialect to SPIR-V dialecthelp
--convert-vector-to-gpu- Lower the operations from the vector dialect into the GPU dialecthelp
--convert-vector-to-llvm- Lower the operations from the vector dialect into the LLVM dialecthelp
--enable-amx- Enables the use of AMX dialect while lowering the vector dialect.help
--enable-arm-neon- Enables the use of ArmNeon dialect while lowering the vector dialect.help
--enable-arm-sve- Enables the use of ArmSVE dialect while lowering the vector dialect.help
--enable-index-optimizations- Allows compiler to assume indices fit in 32-bit if that yields faster codehelp
--enable-x86vector- Enables the use of X86Vector dialect while lowering the vector dialect.help
--reassociate-fp-reductions- Allows llvm to reassociate floating-point reductions for speedhelp
--convert-vector-to-rocdl- Lower the operations from the vector dialect into the ROCDL dialecthelp
--convert-vector-to-scf- Lower the operations from the vector dialect into the SCF dialecthelp
--full-unroll- Perform full unrolling when converting vector transfers to SCFhelp
--lower-permutation-maps- Replace permutation maps with vector transposes/broadcasts before lowering transfer opshelp
--lower-tensors- Lower transfer ops that operate on tensorshelp
--target-rank uint- Target vector rank to which transfer ops should be loweredhelp
--convert-vector-to-spirv- Convert Vector dialect to SPIR-V dialecthelp
--cse- Eliminate common sub-expressionshelp
--decorate-spirv-composite-type-layout- Decorate SPIR-V composite type with layout infohelp
--finalizing-bufferize- Finalize a partial bufferizationhelp
--fold-memref-subview-ops- Fold memref.subview ops into consumer load/store opshelp
--func-bufferize- Bufferize func/call/return opshelp
--gpu-async-region- Make GPU ops asynchelp
--gpu-kernel-outlining- Outline gpu.launch bodies to kernel functionshelp
--data-layout-str string- String containing the data layout specification to be attached to the GPU kernel modulehelp
--gpu-to-llvm- Convert GPU dialect to LLVM dialect with GPU runtime callshelp
--gpu-binary-annotation string- Annotation attribute string for GPU binaryhelp
--inline- Inline function callshelp
--default-pipeline string- The default optimizer pipeline used for callableshelp
--op-pipelines string- Callable operation specific optimizer pipelines (in the form of `dialect.op(pipeline)`)help
--launch-func-to-vulkan- Convert vulkanLaunch external call to Vulkan runtime external callshelp
--linalg-bufferize- Bufferize the linalg dialecthelp
--linalg-comprehensive-module-bufferize- Bufferize (tensor into memref) for a Module.help
--allow-return-memref- Allows the return of memrefs (for testing purposes only)help
--allow-unknown-ops- Allows unknown (not bufferizable) ops in the input IR.help
--analysis-fuzzer-seed uint- Analyze ops in random order with a given seed (fuzzer)help
--create-deallocs- Specify if buffers should be deallocated.help
--fully-dynamic-layout-maps- Generate MemRef types with dynamic offset+strides by default.help
--init-tensor-elimination- (Experimental) Try to eliminate init_tensor operations that are anchored at an insert_slice ophelp
--print-conflicts- Annotates IR with RaW conflicts.help
--test-analysis-only- Only runs inplaceability analysis (for testing purposes only)help
--use-alloca- Use stack allocations for memrefs (for testing purposes only)help
--use-memref.copy- Use a copy operation implemented as a Linalg op.help
--linalg-detensorize- Detensorize linalg opshelp
--aggressive-mode- Detensorize all ops that qualify for detensoring along with branch operands and basic-block arguments.help
--linalg-fold-reshape-ops-by-linearization- Fold TensorReshapeOps with generic/indexed generic ops by linearizationhelp
--allow-folding-unit-dim-reshapes- Allow fusing linalg.tensor_reshape ops that performs unit dimension collapsinghelp
--linalg-fold-unit-extent-dims- Remove unit-extent dimension in Linalg ops on tensorshelp
--fold-one-trip-loops-only- Only folds the one-trip loops from Linalg ops on tensors (for testing purposes only)help
--linalg-fuse-elementwise-ops- Fuse elementwise operations on tensorshelp
--linalg-generalize-named-ops- Convert named ops into generic opshelp
--linalg-inline-scalar-operands- Inline scalar operands into linalg generic opshelp
--linalg-named-op-conversion- Convert from one named linalg op to another.help
--linalg-promote-subviews- Promote subview ops to local buffershelp
--test-promote-dynamic- Test generation of dynamic promoted buffershelp
--test-use-alloca- Test generation of alloca'ed buffers.help
--linalg-strategy-decompose-pass- Configurable pass to apply pattern-based generalization.help
--anchor-func string- Which func op is the anchor to latch on.help
--linalg-strategy-enable-pass- Configurable pass to enable the application of other pattern-based linalg passes.help
--linalg-strategy-generalize-pass- Configurable pass to apply pattern-based generalization.help
--anchor-op string- Which linalg op within the func is the anchor to latch on.help
--linalg-strategy-interchange-pass- Configurable pass to apply pattern-based iterator interchange.help
--linalg-strategy-lower-vectors-pass- Configurable pass to lower vector operations.help
--linalg-strategy-pad-pass- Configurable pass to apply padding and hoisting.help
--linalg-strategy-promote-pass- Configurable pass to apply pattern-based linalg promotion.help
--linalg-strategy-remove-markers-pass- Cleanup pass that drops markers.help
--linalg-strategy-tile-and-fuse-pass- Configurable pass to apply pattern-based tiling and fusion.help
--linalg-strategy-tile-pass- Configurable pass to apply pattern-based linalg tiling.help
--linalg-strategy-vectorize-pass- Configurable pass to apply pattern-based linalg vectorization.help
--vectorize-padding- Enable vectorization of padding ops.help
--linalg-tile- Tile operations in the linalg dialecthelp
--distribution-types string- DistributionTypes (if loop-type=tiled_loop)help
--loop-type string- Specify the type of loops to generate: for, parallel or tiled_loophelp
--llvm-legalize-for-export- Legalize LLVM dialect to be convertible to LLVM IRhelp
--loop-invariant-code-motion- Hoist loop invariant instructions outside of the loophelp
--lower-affine- Lower Affine operations to a combination of Standard and SCF operationshelp
--lower-host-to-llvm- Lowers the host module code and `gpu.launch_func` to LLVMhelp
--memref-expand- Legalize memref operations to be convertible to LLVM.help
--normalize-memrefs- Normalize memrefshelp
--print-op-stats- Print statistics of operationshelp
--promote-buffers-to-stack- Promotes heap-based allocations to automatically managed stack-based allocationshelp
--max-alloc-size-in-bytes uint- Maximal size in bytes to promote allocations to stack.help
--max-rank-of-allocated-memref uint- Maximal memref rank to promote dynamic buffers.help
--quant-convert-const- Converts constants followed by qbarrier to actual quantized valueshelp
--quant-convert-simulated-quantization- Converts training-time simulated quantization ops to corresponding quantize/dequantize castshelp
--reconcile-unrealized-casts- Simplify and eliminate unrealized conversion castshelp
--remove-shape-constraints- Replace all cstr_ ops with a true witnesshelp
--resolve-ranked-shaped-type-result-dims- Resolve memref.dim of result values of ranked shape typehelp
--resolve-shaped-type-result-dims- Resolve memref.dim of result valueshelp
--sccp- Sparse Conditional Constant Propagationhelp
--scf-bufferize- Bufferize the scf dialect.help
--scf-for-loop-canonicalization- Canonicalize operations within scf.for loop bodieshelp
--scf-for-loop-peeling- Peel `for` loops at their upper bounds.help
--skip-partial- Do not peel loops inside of the last, partial iteration of another already peeled loop.help
--scf-for-loop-range-folding- Fold add/mul ops into loop rangehelp
--scf-for-loop-specialization- Specialize `for` loops for vectorizationhelp
--scf-for-to-while- Convert SCF for loops to SCF while loopshelp
--scf-parallel-loop-collapsing- Collapse parallel loops to use less induction variableshelp
--collapsed-indices-0 uint- Which loop indices to combine 0th loop indexhelp
--collapsed-indices-1 uint- Which loop indices to combine into the position 1 loop indexhelp
--collapsed-indices-2 uint- Which loop indices to combine into the position 2 loop indexhelp
--scf-parallel-loop-fusion- Fuse adjacent parallel loopshelp
--scf-parallel-loop-specialization- Specialize parallel loops for vectorizationhelp
--scf-parallel-loop-tiling- Tile parallel loopshelp
--no-min-max-bounds- Perform tiling with fixed upper bound with inbound check inside the internal loopshelp
--parallel-loop-tile-sizes long- Factors to tile parallel loops byhelp
--shape-bufferize- Bufferize the shape dialect.help
--shape-to-shape-lowering- Legalize Shape dialect to be convertible to Standardhelp
--snapshot-op-locations- Generate new locations from the current IRhelp
--filename string- The filename to print the generated IRhelp
--tag string- A tag to use when fusing the new locations with the original.help
--sparse-tensor-conversion- Apply conversion rules to sparse tensor primitives and typeshelp
--sparsification- Automatically generate sparse tensor code from sparse tensor typeshelp
--enable-simd-index32- Enable i32 indexing into vectors (for efficiency)help
--parallelization-strategy int- Set the parallelization strategyhelp
--vectorization-strategy int- Set the vectorization strategyhelp
--vl int- Set the vector lengthhelp
--spirv-lower-abi-attrs- Decorate SPIR-V composite type with layout infohelp
--spirv-rewrite-inserts- Rewrite sequential chains of spv.CompositeInsert operations into spv.CompositeConstruct operationshelp
--spirv-update-vce- Deduce and attach minimal (version, capabilities, extensions) requirements to spv.module opshelp
--std-bufferize- Bufferize the std dialecthelp
--strip-debuginfo- Strip debug info from all operationshelp
--symbol-dce- Eliminate dead symbolshelp
--tensor-bufferize- Bufferize the `tensor` dialecthelp
--tosa-infer-shapes- Propagate shapes across TOSA operationshelp
--tosa-make-broadcastable- TOSA rank Reshape to enable Broadcastinghelp
--tosa-optional-decompositions- Applies Tosa operations optional decompositionshelp
--tosa-to-linalg- Lower TOSA to LinAlg on tensorshelp
--tosa-to-linalg-named- Lower TOSA to LinAlg named operationshelp
--tosa-to-scf- Lower TOSA to the SCF dialecthelp
--tosa-to-standard- Lower TOSA to the Standard dialecthelp
--view-op-graph- Print Graphviz visualization of an operationhelp
--max-label-len uint- Limit attribute/type length to number of charshelp
--print-attrs- Print attributes of operationshelp
--print-control-flow-edges- Print control flow edgeshelp
--print-data-flow-edges- Print data flow edgeshelp
--print-result-types- Print result types of operationshelp
--sparse-compiler- The standard pipeline for taking sparsity-agnostic IR using the sparse-tensor type, and lowering it to LLVM IR with concrete representations and algorithms for sparse tensors.help
--show-dialects- Print the list of registered dialectshelp
--skip-ret-exit-block- Suppress counter promotion if exit blocks contain ret.help
--speculative-counter-promotion-max-exiting uint- The max number of exiting blocks of a loop to allow speculative counter promotionhelp
--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.help
--split-input-file- Split the input file into pieces and process each chunk independentlyhelp
--summary-file string- The summary file to use for function importing.help
--tail-predication value- MVE tail-predication pass options =disabled - Don't tail-predicate loops =enabled-no-reductions - Enable tail-predication, but not for reduction loops =enabled - Enable tail-predication, including…help
--thinlto-assume-merged- Assume the input has already undergone ThinLTO function importing and the other pre-optimization pipeline changes.help
--threads int-help
--verify-diagnostics- Check that emitted diagnostics match expected-* lines on the corresponding linehelp
--verify-each- Run the verifier after each transformation passhelp
--verify-region-info- Verify region info (time consuming)help
--vp-counters-per-site number- The average number of profile counters allocated per value profiling site.help
--vp-static-alloc- Do static counter allocation for value profilerhelp
--wasm-enable-eh- WebAssembly exception handlinghelp
--wasm-enable-sjlj- WebAssembly setjmp/longjmp handlinghelp
--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…help
--x86-align-branch-boundary uint- Control how the assembler should align branches with NOP.help
--x86-branches-within-32B-boundaries- Align selected instructions to mitigate negative performance impact of Intel's micro code update for errata skx102.help
--x86-pad-max-prefix-size uint- Maximum number of prefixes to use for paddinghelp
--help- Display available options (--help-hidden for more)help
--help-list- Display list of available options (--help-list-hidden for more)help
--version- Display the version of this programhelp

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.