talos-opt

Command-line reference

Generated from talos-opt --help.

OVERVIEW: Talos IR optimizer

Available Dialects: acc, affine, amdgpu, amx, arith, arm_neon, arm_sme, arm_sve, async, bufferization, builtin, cf, complex, coverage, dlti, dpi, emitc, func, gpu, index, irdl, linalg, llvm, math, memref, ml_program, mpi, native, nvgpu, nvvm, omp, pdl, pdl_interp, ptr, quant, rocdl, runtime, scf, schedule, sdf, shape, shard, simulation, slang, smt, sparse_tensor, spirv, talos, tensor, tosa, transform, ub, vector, wasmssa, x86vector, xegpu, xevm
USAGE: talos-opt [options] <input file>

OPTIONS:

Color Options:

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

General options:

  --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-atomic-optimizer-strategy=<value>                             - Select DPP or Iterative strategy for scan
    =DPP                                                                 -   Use DPP operations for scan
    =Iterative                                                           -   Use Iterative approach for scan
    =None                                                                -   Disable atomic optimizer
  --amdgpu-bypass-slow-div                                               - Skip 64-bit divide for dynamic 32-bit values
  --amdgpu-disable-loop-alignment                                        - Do not align and prefetch loops
  --amdgpu-dpp-combine                                                   - Enable DPP combiner
  --amdgpu-dump-hsa-metadata                                             - Dump AMDGPU HSA Metadata
  --amdgpu-enable-merge-m0                                               - Merge and hoist M0 initializations
  --amdgpu-indirect-call-specialization-threshold=<uint>                 - A threshold controls whether an indirect call will be specialized
  --amdgpu-kernarg-preload                                               - Enable preload kernel arguments to SGPRs
  --amdgpu-kernarg-preload-count=<uint>                                  - How many kernel arguments to preload onto SGPRs
  --amdgpu-module-splitting-max-depth=<uint>                             - maximum search depth. 0 forces a greedy approach. warning: the algorithm is up to O(2^N), where N is the max depth.
  --amdgpu-promote-alloca-to-vector-limit=<uint>                         - Maximum byte size to consider promote alloca to vector
  --amdgpu-promote-alloca-to-vector-max-regs=<uint>                      - Maximum vector size (in 32b registers) to use when promoting alloca
  --amdgpu-promote-alloca-to-vector-vgpr-ratio=<uint>                    - Ratio of VGPRs to budget for promoting alloca to vectors
  --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
  --arc-contract-use-objc-claim-rv                                       - Enable generation of calls to objc_claimAutoreleasedReturnValue
  --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)
  --basic-block-section-match-infer                                      - Enable matching and inference when generating basic block sections
  --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                                           - 
  --check-functions-filter=<regex>                                       - Only emit checks for arguments of functions whose names match the given regular expression
  --conditional-counter-update                                           - Do conditional counter updates in single byte counters mode)
  --cost-kind=<value>                                                    - Target cost kind
    =throughput                                                          -   Reciprocal throughput
    =latency                                                             -   Instruction latency
    =code-size                                                           -   Code size
    =size-latency                                                        -   Code size and latency
    =all                                                                 -   Print all cost kinds
  --ctx-profile-force-is-specialized                                     - Treat the given module as-if it were containing the post-thinlink module containing the root
  --debugify-atoms                                                       - 
  --debugify-func-limit=<ulong>                                          - Set max number of processed functions per pass.
  --debugify-level=<value>                                               - Kind of debug info to add
    =locations                                                           -   Locations only
    =location+variables                                                  -   Locations and Variables
  --debugify-quiet                                                       - Suppress verbose debugify output
  --devirtualize-speculatively                                           - Enable speculative devirtualization optimization
  --disable-auto-upgrade-debug-info                                      - Disable autoupgrade of debug info
  --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
  --dump-pass-pipeline                                                   - Print the pipeline that will be run
  --elide-all-zero-branch-weights                                        - 
  --elide-resource-data-from-bytecode                                    - Elide resources when generating bytecode
  --emit-bb-hash                                                         - Emit the hash of basic block in the SHT_LLVM_BB_ADDR_MAP section.
  --emit-bytecode                                                        - Emit bytecode when generating output
  --emit-bytecode-version=<value>                                        - Use specified bytecode when generating output
  --enable-cse-in-irtranslator                                           - Should enable CSE in irtranslator
  --enable-cse-in-legalizer                                              - Should enable CSE in Legalizer
  --enable-devirtualize-speculatively                                    - Enable speculative devirtualization optimization
  --enable-gvn-hoist                                                     - Enable the GVN hoisting pass (default = off)
  --enable-gvn-memdep                                                    - 
  --enable-gvn-memoryssa                                                 - 
  --enable-gvn-sink                                                      - Enable the GVN sinking pass (default = off)
  --enable-jump-table-to-switch                                          - Enable JumpTableToSwitch 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-poison-reuse-guard                                            - Enable poison-reuse guard
  --enable-split-backedge-in-load-pre                                    - 
  --enable-split-loopiv-heuristic                                        - Enable loop iv regalloc heuristic
  --enable-vtable-profile-use                                            - If ThinLTO and WPD is enabled and this option is true, vtable profiles will be used by ICP pass for more efficient indirect call sequence. If false, type profiles won't be used.
  --enable-vtable-value-profiling                                        - If true, the virtual table address will be instrumented to know the types of a C++ pointer. The information is used in indirect call promotion to do selective vtable-based comparison.
  --expand-variadics-override=<value>                                    - Override the behaviour of expand-variadics
    =unspecified                                                         -   Use the implementation defaults
    =disable                                                             -   Disable the pass entirely
    =optimize                                                            -   Optimise without changing ABI
    =lowering                                                            -   Change variadic calling convention
  --experimental-debug-variable-locations                                - Use experimental new value-tracking variable locations
  --force-tail-folding-style=<value>                                     - Force the tail folding style
    =none                                                                -   Disable tail folding
    =data                                                                -   Create lane mask for data only, using active.lane.mask intrinsic
    =data-without-lane-mask                                              -   Create lane mask with compare/stepvector
    =data-and-control                                                    -   Create lane mask using active.lane.mask intrinsic, and use it for both data and control flow
    =data-and-control-without-rt-check                                   -   Similar to data-and-control, but remove the runtime check
    =data-with-evl                                                       -   Use predicated EVL instructions for tail folding. If EVL is unsupported, fallback to data-without-lane-mask.
  --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 probability 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.
  --hash-based-counter-split                                             - Rename counter variable of a comdat function based on cfg hash
  --hot-cold-split                                                       - Enable hot-cold splitting pass
  --hwasan-percentile-cutoff-hot=<int>                                   - Hot percentile cutoff.
  --hwasan-random-rate=<number>                                          - Probability value in the range [0.0, 1.0] to keep instrumentation of a function. Note: instrumentation can be skipped randomly OR because of the hot percentile cutoff, if both are supplied.
  --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-num-phis=<uint>                                      - Maximum number phis to handle in intptr/ptrint folding
  --instcombine-max-sink-users=<uint>                                    - Maximum number of undroppable users for instruction sinking
  --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
  --intrinsic-cost-strategy=<value>                                      - Costing strategy for intrinsic instructions
    =instruction-cost                                                    -   Use TargetTransformInfo::getInstructionCost
    =intrinsic-cost                                                      -   Use TargetTransformInfo::getIntrinsicInstrCost
    =type-based-intrinsic-cost                                           -   Calculate the intrinsic cost based only on argument types
  --irdl-file=<filename>                                                 - IRDL file to register before processing the input
  --iterative-counter-promotion                                          - Allow counter promotion across the whole loop nest.
  --list-passes                                                          - Print the list of registered passes and exit
  --load-dialect-plugin=<string>                                         - Load dialects from plugin library
  --load-pass-plugin=<string>                                            - Load passes from plugin library
  --log-actions-to=<string>                                              - Log action execution to a file, or stderr if  '-' is passed
  --log-mlir-actions-filter=<string>                                     - Comma separated list of locations to filter actions from logging
  --lower-allow-check-percentile-cutoff-hot=<int>                        - Hot percentile cutoff.
  --lower-allow-check-random-rate=<number>                               - Probability value in the range [0.0, 1.0] of unconditional pseudo-random checks.
  --matrix-default-layout=<value>                                        - Sets the default matrix layout
    =column-major                                                        -   Use column-major layout
    =row-major                                                           -   Use row-major layout
  --matrix-print-after-transpose-opt                                     - 
  --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
  --mir-strip-debugify-only                                              - Should mir-strip-debug only strip debug info from debugified modules by default
  --misexpect-tolerance=<uint>                                           - Prevents emitting diagnostics when profile counts are within N% of the threshold..
  --mlir-debug-counter=<string>                                          - Comma separated list of debug counter skip and count arguments
  --mlir-diagnostic-verbosity-level=<value>                              - Choose level of diagnostic information
    =errors                                                              -   Errors only
    =warnings                                                            -   Errors and warnings
    =remarks                                                             -   Errors, warnings and remarks
  --mlir-disable-diagnostic-notes                                        - Disable diagnostic notes.
  --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-elide-resource-strings-if-larger=<uint>                         - Elide printing value of resources if string is too long in chars.
  --mlir-enable-debugger-hook                                            - Enable Debugger hook for debugging MLIR Actions
  --mlir-generate-reproducer=<filename>                                  - Generate an mlir reproducer at the provided filename (no crash required)
  --mlir-output-format=<value>                                           - Output format for timing data
    =text                                                                -   display the results in text format
    =json                                                                -   display the results in JSON format
  --mlir-pass-pipeline-crash-reproducer=<string>                         - Generate a .mlir reproducer file at the given output path if the pass manager crashes or fails
  --mlir-pass-pipeline-local-reproducer                                  - When generating a crash reproducer, attempt to generated a reproducer with the smallest pipeline.
  --mlir-pass-statistics                                                 - Display the statistics of each pass
  --mlir-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
  --mlir-pretty-debuginfo                                                - Print pretty debug info in MLIR output
  --mlir-print-debug-counter                                             - Print out debug counter information after all counters have been accumulated
  --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-ir-after=<pass-arg>                                       - Print IR after specified passes
  --mlir-print-ir-after-all                                              - Print IR after each pass
  --mlir-print-ir-after-change                                           - When printing the IR after a pass, only print if the IR changed
  --mlir-print-ir-after-failure                                          - When printing the IR after a pass, only print if the pass failed
  --mlir-print-ir-before=<pass-arg>                                      - Print IR before specified passes
  --mlir-print-ir-before-all                                             - Print IR before each pass
  --mlir-print-ir-module-scope                                           - When printing IR for print-ir-[before|after]{-all} always print the top-level operation
  --mlir-print-ir-tree-dir=<string>                                      - When printing the IR before/after a pass, print file tree rooted at this directory. Use in conjunction with mlir-print-ir-* flags
  --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-skip-regions                                              - Skip regions when printing ops.
  --mlir-print-stacktrace-on-diagnostic                                  - When a diagnostic is emitted, also print the stack trace as an attached note
  --mlir-print-unique-ssa-ids                                            - Print unique SSA ID numbers for values, block arguments and naming conflicts across all regions
  --mlir-print-value-users                                               - Print users of operation results and block arguments as a comment
  --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
  --mlir-use-nameloc-as-prefix                                           - Print SSA IDs using NameLocs as prefixes
  --mlir-very-unsafe-disable-verifier-on-parsing                         - Disable the verifier on parsing (very unsafe)
  --ms-secure-hotpatch-functions-file=<filename>                         - A file containing list of mangled function names to mark for Windows Secure Hot-Patching
  --ms-secure-hotpatch-functions-list=<list>                             - A list of mangled function names to mark for Windows Secure Hot-Patching
  --no-discriminators                                                    - Disable generation of discriminator information.
  --no-implicit-module                                                   - Disable implicit addition of a top-level module op during parsing
  --nvptx-approx-log2f32                                                 - NVPTX Specific: whether to use lg2.approx for log2
  --nvptx-sched4reg                                                      - NVPTX Specific: schedule for register pressue
  -o <filename>                                                          - Output filename
  --object-size-offset-visitor-max-visit-instructions=<uint>             - Maximum number of instructions for ObjectSizeOffsetVisitor to look at
  --output-split-marker=<string>                                         - Split marker to use for merging the ouput
  --pass-pipeline=<string>                                               - Textual description of the pass pipeline to run
  --pgo-block-coverage                                                   - Use this option to enable basic block coverage instrumentation
  --pgo-temporal-instrumentation                                         - Use this option to enable temporal instrumentation
  --pgo-view-block-coverage-graph                                        - Create a dot file of CFGs with block coverage inference information
  --print-pipeline-passes                                                - Print a '-passes' compatible string describing the pipeline (best-effort only).
  --profcheck-annotate-select                                            - Also inject (if missing) and verify MD_prof for `select` instructions
  --profcheck-default-function-entry-count=<long>                        - 
  --profcheck-default-select-false-weight=<uint>                         - When annotating `select` instructions, this value will be used for the second ('false') case.
  --profcheck-default-select-true-weight=<uint>                          - When annotating `select` instructions, this value will be used for the first ('true') case.
  --profcheck-weights-for-test                                           - Generate weights with small values for tests.
  --profile-actions-to=<string>                                          - Profile action execution to a file, or stderr if  '-' is passed
  --profile-correlate=<value>                                            - Use debug info or binary file to correlate profiles.
    =<empty>                                                             -   No profile correlation
    =debug-info                                                          -   Use debug info to correlate
    =binary                                                              -   Use binary to correlate
  --promote-alloca-vector-loop-user-weight=<uint>                        - The bonus weight of users of allocas within loop when sorting profitable allocas
  --propeller-infer-threshold=<number>                                   - Threshold for infer stale profile
  --r600-ir-structurize                                                  - Use StructurizeCFG IR pass
  --run-reproducer                                                       - Run the pipeline stored in 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.
  --sampled-instr-burst-duration=<uint>                                  - Set the profile instrumentation burst duration, which can range from 1 to the value of 'sampled-instr-period' (0 is invalid). This number of samples will be recorded for each 'sampled-instr-period' count update. Setting to 1 enables simple sampling, in which case it is recommended to set 'sampled-instr-period' to a prime number.
  --sampled-instr-period=<uint>                                          - Set the profile instrumentation sample period. A sample period of 0 is invalid. For each sample period, a fixed number of consecutive samples will be recorded. The number is controlled by 'sampled-instr-burst-duration' flag. The default sample period of 65536 is optimized for generating efficient code that leverages unsigned short integer wrapping in overflow, but this is disabled under simple sampling (burst duration = 1).
  --sampled-instrumentation                                              - Do PGO instrumentation sampling
  --show-dialects                                                        - Print the list of registered dialects and exit
  --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.
  --spirv-emit-op-names                                                  - Emit OpName for all instructions
  --spirv-ext=<value>                                                    - Specify list of enabled SPIR-V extensions
  --split-input-file[=<string>]                                            - Split the input file into chunks using the given or default marker and process each chunk independently
  --spv-allow-unknown-intrinsics[=<intrinsic_prefix_0,intrinsic_prefix_1>] - Emit unknown intrinsics as calls to external functions. A comma-separated input list of intrinsic prefixes must be provided, and only intrinsics carrying a listed prefix get emitted as described.
  --spv-dump-deps                                                        - Dump MIR with SPIR-V dependencies info
  --spv-emit-nonsemantic-debug-info                                      - Emit SPIR-V NonSemantic.Shader.DebugInfo.100 instructions
  --summary-file=<string>                                                - The summary file to use for function importing.
  Compiler passes to run
    Passes:
      --address-native-state-through-bases                               -   Address native state planes through one base per function
      --bubble-down-memory-space-casts                                   -   Bubbles down memory-space cast operations.
      --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>                                          - Max. iterations between applying patterns / simplifying regions
        --max-num-rewrites=<long>                                        - Max. number of pattern rewrites within an iteration
        --region-simplify=<value>                                        - Perform control flow optimizations to the region tree
    =disabled                                                      -   Don't run any control-flow simplification.
    =normal                                                        -   Perform simple control-flow simplifications (e.g. dead args elimination).
    =aggressive                                                    -   Perform aggressive control-flow simplification (e.g. block merging).
        --test-convergence                                               - Test only: Fail pass on non-convergence to detect cyclic pattern
        --top-down                                                       - Seed the worklist in general top-down order
      --composite-fixed-point-pass                                       -   Composite fixed point pass
        --max-iterations=<int>                                           - Maximum number of iterations if inner pipeline
        --name=<string>                                                  - Composite pass display name
        --pipeline=<string>                                              - Composite pass inner pipeline
      --control-flow-sink                                                -   Sink operations into conditional blocks
      --convert-native-function-body-to-llvm                             -   Convert one prepared native function body to LLVM
      --convert-native-schedule-actions-to-llvm                          -   Expand verified executable scheduling actions into the native ABI
        --coalesce                                                       - Combine unobservable pending-set updates before physical expansion
      --convert-prepared-sim-processes-to-llvm-coroutines                -   Lower simulation processes to switched-resume LLVM coroutines
      --convert-runtime-to-llvm                                          -   Convert prepared runtime operations and types to the LLVM C ABI
      --convert-scf-to-cf                                                -   Convert SCF dialect to ControlFlow dialect, replacing structured control flow with a CFG
        --allow-pattern-rollback                                         - Experimental performance flag to disallow pattern rollback
      --convert-schedule-word-regions                                    -   Lower proven word regions without scalarizing packed values
      --convert-simulation-to-native-schedule                            -   convert simulation to native schedule
      --convert-slang-to-talos                                           -   Convert elaborated Slang IR to exact Talos semantic IR
      --convert-talos-sim-to-runtime                                     -   Lower precise simulation display and file I/O to runtime calls
      --convert-talos-sim-values-to-standard                             -   Lower pure four-state packed values to standard integer IR
      --cse                                                              -   Eliminate common sub-expressions
      --encode-talos-sim-to-bytecode                                     -   Strictly encode the normalized executable simulation boundary
        --prune-native                                                   - Omit native actors without interpreter fallbacks
        --require-bytecode                                               - Require scheduler execution through the embedded bytecode tier
        --vpi=<string>                                                   - Reflection profile: auto, off, read, or full
      --finalize-native-llvm                                             -   Finalize native scheduling, proofs and LLVM partition manifests
      --fold-native-scalar-values                                        -   Fold SSA values proved constant by scoped scalar evolution
      --generate-runtime-verification                                    -   Generate additional runtime op verification checks
        --verbose-level=<uint>                                           - Verbosity level for runtime verification messages: 0 = Minimum (only source location), 1 = Detailed (include full operation details, names, types, shapes, etc.)
      --inline                                                           -   Inline function calls
        --default-pipeline=<string>                                      - The optimizer pipeline used for callables that do not have a dedicated optimizer pipeline in opPipelineList
        --inlining-threshold=<uint>                                      - If the ratio between the number of the operations in the callee and the number of the operations in the caller exceeds this value (in percentage), then the callee is not inlined even if it is legal to inline it
        --max-iterations=<uint>                                          - Maximum number of iterations when inlining within an SCC
        --op-pipelines=<pass-manager>                                    - Callable operation specific optimizer pipelines (in the form of `dialect.op(pipeline)`)
      --loop-invariant-code-motion                                       -   Hoist loop invariant instructions outside of the loop
      --loop-invariant-subset-hoisting                                   -   Hoist loop invariant subset ops outside of the loop
      --materialize-native-group-promotion-readiness                     -   Materialize exact knownness queries for planned native groups
      --materialize-native-processes                                     -   materialize native processes
      --materialize-native-promotion-range-index                         -   Materialize verified reverse dependencies for native proofs
        --bucket-min-entries=<ulong>                                     - Minimum dependency count for compact buckets
      --materialize-runtime-byte-globals                                 -   Emit immutable byte globals remaining after reachability
      --mem2reg                                                          -   Promotes memory slots into values.
        --region-simplify                                                - Perform control flow optimizations to the region tree
      --prepare-native-fragments                                         -   prepare native fragments
      --prepare-native-llvm-functions                                    -   Publish native LLVM function ABIs and shared runtime symbols
      --prepare-native-managed-roots                                     -   prepare native managed roots
      --prepare-native-process-frames                                    -   prepare native process frames
      --prepare-native-schedule-inputs                                   -   prepare native schedule inputs
      --prepare-runtime-to-llvm                                          -   Prepare runtime ownership, embedded design, and LLVM byte globals
      --print-ir                                                         -   Print IR on the debug stream
        --label=<string>                                                 - Label
      --print-op-stats                                                   -   Print statistics of operations
        --json                                                           - print the stats as JSON
      --remove-dead-values                                               -   Remove dead values
        --canonicalize                                                   - Canonicalize region branch ops
      --sccp                                                             -   Sparse Conditional Constant Propagation
      --schedule-annotate-compact-nba                                    -   Propagate selected native NBA proofs to their consuming operations
      --schedule-cache-pure-cones                                        -   Cache bounded pure native cones by complete scalar input snapshots
        --maximum-caches=<uint>                                          - Maximum per-thread cache records
        --maximum-cost=<ulong>                                           - Maximum cone code budget
        --minimum-cost=<ulong>                                           - Minimum pure operation count
      --schedule-coalesce-native-ready                                   -   Combine exact pending-set updates before physical expansion
      --schedule-localize-private-eval-storage                           -   Localize evaluator storage using activation memory proofs
      --schedule-lower-conditional-reference-accesses                    -   Lower selected reference accesses to conditional branches
        --native-bodies-only                                             - Only rewrite borrowed native evaluator bodies
      --schedule-lower-gc-collections                                    -   Lower designated GC collection points to the runtime dialect
      --schedule-mark-clean-native-nba                                   -   schedule mark clean native nba
      --schedule-optimize-native-aggregates                              -   Forward proved SSA array elements before packed lowering
        --eval-only                                                      - Only rewrite specialized eval bodies after native frame planning
      --schedule-optimize-native-words                                   -   Prove independent packed lanes and form native word regions
        --predication-operation-budget=<ulong>                           - Maximum operations cloned for predication retries per function
      --schedule-plan-combinational-statements                           -   Plan source-ordered DAGs across combinational process boundaries
        --explain                                                        - Report rejected activation and component proofs
        --grow-acyclic                                                   - Grow each cohort over its connected acyclic activations
        --max-members=<uint>                                             - Maximum activations in one statement DAG (0: unlimited)
      --schedule-plan-native-actors                                      -   schedule plan native actors
      --schedule-plan-native-eval-ownership                              -   schedule plan native eval ownership
      --schedule-plan-native-executable-nodes                            -   plan native executable schedule nodes
      --schedule-plan-native-state                                       -   schedule plan native state
      --schedule-plan-native-transfers                                   -   Expose ordered capture-copy activations before specialization
      --schedule-prepare-native-aggregates                               -   Optimize native SSA arrays with concurrent function passes
      --schedule-prepare-native-transfer-kernels                         -   Prepare selected transfer kernels for native representation lowering
      --schedule-promote-eval-storage                                    -   Promote local evaluator storage to SSA
      --schedule-resolve-native-eval                                     -   schedule resolve native eval
      --schedule-share-native-transfers                                  -   Share transfer implementations with identical canonical capture ABIs
      --schedule-specialize-native-captures                              -   schedule specialize native captures
      --schedule-specialize-native-eval                                  -   schedule specialize native eval
      --schedule-specialize-reference-joins                              -   Specialize small reference joins along their incoming edges
        --native-bodies-only                                             - Only rewrite borrowed native evaluator bodies
      --schedule-thin-gc-collections                                     -   Keep one designated GC collection per periodic clock cycle
      --schedule-version-known-activations                               -   Run activations on value planes while their gated reads are known
        --checked-reads                                                  - Test reads the entry check cannot cover where they load
        --minimum-benefit=<ulong>                                        - Smallest estimated unknown-plane work worth a copy
        --segment-size=<ulong>                                           - Operations after which a segment ends at the next cut point; 0 versions the whole body as one segment
        --variants                                                       - Also version guarded two-state variants
      --schedule-version-known-regions                                   -   Run loops and straight-line regions on value planes when known
      --snapshot-op-locations                                            -   Generate new locations from the current IR
        --filename=<string>                                              - The filename to print the generated IR
        --pretty-debuginfo                                               - Print pretty debug info in MLIR output
        --print-debuginfo                                                - Print debug info in MLIR output
        --print-local-scope                                              - Print with local scope and inline information (eliding aliases for attributes, types, and locations
        --print-op-generic                                               - Print the generic op form
        --tag=<string>                                                   - A tag to use when fusing the new locations with the original. If unset, the locations are replaced.
      --sroa                                                             -   Scalar Replacement of Aggregates
      --strip-debuginfo                                                  -   Strip debug info from all operations
      --symbol-dce                                                       -   Eliminate dead symbols
      --symbol-privatize                                                 -   Mark symbols private
        --exclude=<string>                                               - Comma separated list of symbols that should not be marked private
      --talos-materialize-native-eval-groups                             -   Materialize certified native activation bodies and boundary state
      --talos-native-share-scoped-temporaries                            -   Share stack slots between lifetime-scoped temporaries
      --talos-sim-alias-port-connections                                 -   Share storage across VPI-invisible single-driver port copies
        --elements                                                       - Also alias constant-index element connections. Consumers then select their element from the parent root; generated eval does not yet certify every such body or shared-root writer set
        --vpi=<string>                                                   - VPI observability mode: off, read, or full
      --talos-sim-annotate-steady-unknown                                -   Record the storage bits expected to hold X/Z in steady state
        --vpi=<string>                                                   - External observation/mutation contract: off, read, or full
      --talos-sim-build-compute-graph                                    -   Derive descriptor-range summaries and a deterministic schedule
        --prune-effect-free                                              - Erase processes that only read and wait before deriving the graph (VPI off)
        --vpi=<string>                                                   - VPI observability mode: off, read, or full
        --workers=<uint>                                                 - Number of generated static worker lanes
      --talos-sim-compile-random-plans                                   -   Compile parameterized random arithmetic into exact Boolean plans
      --talos-sim-devirtualize-class-calls                               -   Resolve exact and monomorphic managed-class dispatches
        --preserve-all-methods                                           - Keep every prepared class method for lowering inspection
      --talos-sim-eliminate-dead-boundaries                              -   Remove dead private simulation function boundaries and calls
        --missed-remarks                                                 - Emit developer remarks for conservatively pinned ABIs
      --talos-sim-eliminate-dead-captures                                -   Remove unused private simulation entry arguments
        --missed-remarks                                                 - Emit developer remarks for conservatively pinned ABIs
      --talos-sim-extract-periodic-clocks                                -   Extract private toggle clocks from uniform periodic processes
        --vpi=<string>                                                   - VPI observability mode: off, read, or full
      --talos-sim-finalize                                               -   Remove semantic IR and verify the executable simulation boundary
      --talos-sim-fuse-clocked-kernels                                   -   Run each clock edge's processes as one activation with direct NBA stores
        --defer                                                          - Allow kernels that resume in the Inactive region
      --talos-sim-fuse-compute-fragments                                 -   Plan conservative static compute-fragment fusion
        --body-fusion                                                    - Plan candidates for physical process-body fusion instead of AOT dispatch batches
        --max-straight-line-members=<uint>                               - Maximum number of continuous actors in one i64-mask region kernel
        --primitive-only                                                 - Restrict physical body fusion to continuous built-in primitive actors
      --talos-sim-inline                                                 -   Propagate control and inline profitable zero-time calls
        --caller-growth-constant=<long>                                  - Override caller fixed weighted-growth budget
        --caller-growth-percent=<long>                                   - Override caller growth percentage budget
        --design-growth-constant=<long>                                  - Override design fixed weighted-growth budget
        --design-growth-percent=<long>                                   - Override design growth percentage budget
        --max-iterations=<long>                                          - Override the maximum SCC inlining iterations
        --missed-remarks                                                 - Emit a remark explaining every missed inline opportunity
        --opt-level=<uint>                                               - Profitability preset from 0 (mandatory control only) through 3
        --specialization-cost=<long>                                     - Override the specialization-candidate weighted cost threshold
        --tiny-cost=<long>                                               - Override the preset tiny-leaf weighted cost threshold
      --talos-sim-insert-gc-polls                                        -   Place managed-heap collection polls for polled collection
      --talos-sim-instrument-managed-roots                               -   Bind live managed SSA values to precise GC roots
        --polled                                                         - Collect only at GC polls and calls that may reach one
      --talos-sim-instrument-reference-lifetimes                         -   Release automatic simulation references on CFG exits
      --talos-sim-instrument-vpi-frames                                  -   Bind exact source call sites to procedural frame handoffs
      --talos-sim-lower-real-conversions                                 -   Normalize pure simulation real conversions to arith
      --talos-sim-lower-unit                                             -   Lower one frozen simulation code unit to SSA and CF
      --talos-sim-mark-bounded-loops                                     -   Record the termination proof for bounded induction loops
      --talos-sim-materialize-clocked-control                            -   Make singleton initial clock-control state explicit
      --talos-sim-materialize-clocked-samples                            -   Materialize deferred assertion and coverage clock samplers
      --talos-sim-materialize-compute-fusion                             -   Fuse proven-adjacent process activations into one body
        --materialize-eval-bodies                                        - Clone native evaluators after the final body-fusion round
      --talos-sim-materialize-dpi-exports                                -   Materialize scope-specific zero-time DPI export bridges
      --talos-sim-materialize-graph-regions                              -   Materialize verified compute regions as coarse native kernels
        --max-acyclic-cost=<ulong>                                       - Maximum static cost of one merged acyclic kernel
      --talos-sim-optimize-native-regions                                -   Forward generated native-region next state through SSA
      --talos-sim-plan-native-partitions                                 -   Plan stable semantic native compilation partitions
      --talos-sim-plan-static-superstep                                  -   Plan a guarded fixed-actor native AOT superstep
        --missed-remarks                                                 - Emit a remark explaining why no static superstep was planned
      --talos-sim-prepare                                                -   Resolve and freeze semantic IR into isolated simulation units
        --preserve-vpi-box-bindings                                      - Retain exact untyped mailbox value type bindings for VPI reflection
        --preserve-vpi-frames                                            - Preserve exact procedural frame activations and statement checkpoints
        --preserve-vpi-method-bindings                                   - Retain executable class method bindings for VPI reflection
        --prune-unused-coverage                                          - Prune unreferenced embedded covergroups before declaration materialization
      --talos-sim-prepare-coverage                                       -   Inventory coverage obligations and emit the native schema
      --talos-sim-prepare-unit-lowering                                  -   Cache symbol tables and callable metadata before parallel unit lowering
      --talos-sim-propagate-initialized-storage                          -   Propagate initialized scalar storage through whole and sliced reads
        --vpi=<string>                                                   - VPI observability mode: off, read, or full
      --talos-sim-refine-continuous-sensitivity                          -   Refine pure continuous RHS wakeups with sparse storage ranges
        --vpi=<string>                                                   - External observation/mutation contract
      --talos-sim-sccp                                                   -   Propagate constants across simulation code-unit boundaries
        --vpi=<string>                                                   - VPI observability mode: off, read, or full
      --talos-sim-simplify-bodies                                        -   Simplify semantic bodies using sparse bits and dense memory SSA facts
        --vpi=<string>                                                   - External observation/mutation contract: off, read, or full
      --talos-sim-specialize-static-state-nba                            -   Plan guarded direct static state and fixed-root NBA
        --max-packed-width=<uint>                                        - Maximum fixed packed integer or logic root width
        --missed-remarks                                                 - Emit remarks for roots and operations left generic
      --talos-sim-thread-process-cfg                                     -   Make process state explicit on every CFG edge
      --talos-sim-thread-runtime-statuses                                -   Thread runtime failures through simulation calls
      --talos-sim-thread-suspension                                      -   Thread promoted SSA state through suspension continuations
      --talos-sim-unroll-bounded-loops                                   -   Unroll small constant-trip, non-suspending CFG loops
        --maximum-loop-size=<ulong>                                      - Maximum simplified weighted cost per complete loop nest before packed expansion (zero disables unrolling)
      --talos-sim-verify-compute-graph                                   -   Verify fragment ABI, range summaries, and region schedules
      --test-talos-access-footprints                                     -   print reachable reference access footprints
        --print-handles                                                  - print block executability and SSA handle facts
      --test-talos-activation-control-flow                               -   print edge-threaded disposable activation CFGs
      --test-talos-activation-memory                                     -   print source-ordered activation memory facts
        --maximum-partitions=<uint>                                      - 
        --values                                                         - 
      --test-talos-activation-phases                                     -   print time-slot phases of activations and root changes
      --test-talos-activation-regions                                    -   print activation units and their memory effects
        --compare-input-dependencies                                     - check the input-only dependency proof against full publication analysis instead of printing regions
        --dump                                                           - 
        --functions=<string>                                             - 
        --idempotence                                                    - 
        --idempotence-maximum-operations=<uint>                          - 
        --input-dependencies                                             - 
        --inputs                                                         - 
        --order                                                          - 
        --publications                                                   - 
        --reaching-values                                                - 
        --slice-order                                                    - 
        --slice-root=<long>                                              - 
        --thread-control                                                 - 
      --test-talos-class-dispatch-analysis                               -   inspect sparse hierarchy and shared method-table facts
      --test-talos-clock-inference                                       -   print inferred clock domains
      --test-talos-combinational-dependencies                            -   print whole-program statement and storage dependencies
      --test-talos-dpi-effects                                           -   print whether DPI calls can reach design state
      --test-talos-edit-attributes                                       -   edit, replace within, or erase operations that match attributes
        --clone                                                          - edit an unused copy inserted before each matching operation
        --constant=<string>                                              - typed attribute of the replacement operand
        --erase                                                          - erase the matching operations
        --has=<string>                                                   - attribute names an operation must carry, any value
        --match=<string>                                                 - dictionary of attributes an operation must carry
        --op=<string>                                                    - only edit operations of this name
        --operand=<long>                                                 - index of the operand to replace with `constant`
        --poison=<string>                                                - type of a ub.poison replacement operand
        --remove=<string>                                                - attribute names to remove
        --replace-from=<string>                                          - attribute or type to replace, also when nested
        --replace-to=<string>                                            - its replacement
        --set=<string>                                                   - dictionary of attributes to set
      --test-talos-erase-marked-sim-function                             -   erase marked simulation functions for unresolved-call tests
      --test-talos-export-llvm-symbols                                   -   give named LLVM globals external linkage and rename main
        --globals=<string>                                               - internal LLVM globals to give external linkage
        --main=<string>                                                  - new name for the generated main function
      --test-talos-insert-block-chain                                    -   expand each branch marked test.chain_length into a block chain
      --test-talos-integer-interfaces                                    -   query Simulation operations using standard MLIR value interfaces
      --test-talos-local-storage                                         -   print private storage snapshot conflicts
        --allocations                                                    - Print allocation classification
        --coroutine                                                      - Use coroutine local lifetimes
        --functions=<string>                                             - Function name to inspect
      --test-talos-local-unknown                                         -   print the reads a gated two-state activation copy can make value-only
        --checks                                                         - test reads where they load
      --test-talos-managed-class-layout-analysis                         -   print shared managed class layout facts
      --test-talos-native-aot-analysis                                   -   print native AOT scheduler eligibility facts
      --test-talos-native-state-layout-analysis                          -   print stable native state layout facts
      --test-talos-nba-influence                                         -   print NBA observer influence cones
      --test-talos-prefix-symbols                                        -   prefix every symbol defined in the top-level module
        --prefix=<string>                                                - prefix added to each symbol
      --test-talos-print-bytecode                                        -   print the serialized design-bytecode image records
        --metadata                                                       - print function, register-layout, and operand-map metadata
        --state                                                          - print static net and driver state descriptors
      --test-talos-print-coverage-schema                                 -   print embedded coverage schema records and check sample operands
      --test-talos-print-native-size                                     -   print operation counts of a lowered native module by function and global family
        --limit=<uint>                                                   - print at most this many families of each kind (0: all)
      --test-talos-print-random-programs                                 -   Print the decoded residual programs of random solve operations
      --test-talos-region-value-dependencies                             -   print result-specific SSA dependencies through region yields
      --test-talos-repeatable-activations                                -   
      --test-talos-replicate                                             -   replicate operations marked test.replicate with indexed names
      --test-talos-scoped-integer-ranges                                 -   query selector ranges and bound retained scoped facts
      --test-talos-semantic-roots                                        -   print CFG semantic value roots
      --test-talos-set-module-attributes                                 -   merge a dictionary of attributes into the top-level module
        --attrs=<string>                                                 - dictionary attribute merged into the module, replacing attributes of the same name; \" spells a quote inside a quoted option value
        --bytes-attr=<string>                                            - module attribute set to the contents of `bytes-file` as an array<i8>
        --bytes-file=<string>                                            - file read for `bytes-attr`
      --test-talos-sim-known-versioning                                  -   print regions admitted for known-state versioning
      --test-talos-sim-state-domain                                      -   print read-only Talos simulation state-domain facts
        --shared                                                         - share specialization proof indexes
      --test-talos-simulation-process-frame-analysis                     -   print canonical process frame analysis facts
      --test-talos-simulation-schedule-analysis                          -   print shared native and bytecode schedule ranks
      --test-talos-simulation-vpi-analysis                               -   print simulation VPI capability facts
      --test-talos-source-memory-forwarding                              -   forward loads using dense source-memory snapshots
      --test-talos-static-specialization-analysis                        -   print validated static-specialization plan facts
      --test-talos-steady-unknown                                        -   print the storage bits expected to hold X/Z in steady state
      --test-talos-storage-flow                                          -   print activation definitions and lifetime execution bounds
      --test-talos-storage-writes                                        -   print storage-write lattice facts
        --execution                                                      - 
        --functions=<string>                                             - 
      --test-talos-unroll-loops                                          -   fully unroll every constant-trip scf.for
      --test-talos-value-interfaces                                      -   exercise value analyses through a second select interface model
      --topological-sort                                                 -   Sort regions without SSA dominance in topological order
      --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:
      --convert-simulation-to-schedule                                   -   Derive the verified schedule from executable simulation IR
      --convert-talos-runtime-to-llvm                                    -   Prepare and convert runtime operations to the in-tree LLVM C ABI
      --convert-talos-sim-processes-to-llvm-coroutines                   -   Plan, specialize, and lower native simulation processes
        --native-aggregates                                              - Forward proved native SSA array elements
        --native-words                                                   - Optimize independent native word lanes
      --lower-talos-to-sim                                               -   Lower elaborated talos.sv semantic IR to isolated simulation SSA
        --clocked-kernels=<string>                                       - clocked kernels: off, immediate, or deferred
        --early-symbol-dce                                               - prune unreachable prepared symbols before unit lowering
        --instrument-vpi-frames                                          - enable source frame probes while bridge coverage is developed
        --opt-level=<uint>                                               - optimization level from 0 to 3
        --static-specialization=<string>                                 - static state/NBA specialization: auto, off, or on
        --vpi=<string>                                                   - VPI visibility mode: off, read, or full
        --workers=<uint>                                                 - number of generated worker lanes
      --test-talos-native-backend                                        -   Lower Slang dialect input to native LLVM as an executable build does
        --closed-executable                                              - lower as a linked executable, which the driver does above -O0
        --opt-level=<uint>                                               - native optimization level
        --scheduler=<string>                                             - native scheduler: auto, generic, aot or eval
        --sim-opt-level=<int>                                            - lower as the driver does at this optimization level instead of one actor per process (-1)
        --stop-after=<string>                                            - stop after 'lowering' (simulation IR with the backend attributes) or 'graph' (plus the verified compute graph that native analyses read)
        --timing                                                         - print native planning traces, as --mlir-timing does
  --translator-compatibility-mode                                        - SPIR-V Translator compatibility mode
  --verify-diagnostics                                                   - Check that emitted diagnostics match expected-* lines on the corresponding line
  --verify-diagnostics=<value>                                           - Check that emitted diagnostics match expected-* lines on the corresponding line
    =all                                                                 -   Check all diagnostics (expected, unexpected, near-misses)
    =<empty>                                                             -   Check all diagnostics (expected, unexpected, near-misses)
    =only-expected                                                       -   Check only expected diagnostics
  --verify-each                                                          - Run the verifier after each transformation pass
  --verify-region-info                                                   - Verify region info (time consuming)
  --verify-roundtrip                                                     - Round-trip the IR after parsing and ensure it succeeds
  --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

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

IR2Vec Options:

  --ir2vec-arg-weight=<number>                                           - Weight for argument embeddings
  --ir2vec-kind=<value>                                                  - IR2Vec embedding kind
    =symbolic                                                            -   Generate symbolic embeddings
    =flow-aware                                                          -   Generate flow-aware embeddings
  --ir2vec-opc-weight=<number>                                           - Weight for opcode embeddings
  --ir2vec-type-weight=<number>                                          - Weight for type embeddings
  --ir2vec-vocab-path=<string>                                           - Path to the vocabulary file for IR2Vec

MIR2Vec Options:

  --mir2vec-common-operand-weight=<number>                               - Weight for common operand embeddings
  --mir2vec-kind=<value>                                                 - MIR2Vec embedding kind
    =symbolic                                                            -   Generate symbolic embeddings for MIR
  --mir2vec-opc-weight=<number>                                          - Weight for machine opcode embeddings
  --mir2vec-reg-operand-weight=<number>                                  - Weight for register operand embeddings
  --mir2vec-vocab-path=<string>                                          - Path to the vocabulary file for MIR2Vec

Remark Options:
Filter remarks by regular expression (llvm::Regex syntax).

  --remark-format=<value>                                                - Specify the format for remark output.
    =emitRemark                                                          -   Print as emitRemark to command-line
    =yaml                                                                -   Print yaml file
    =bitstream                                                           -   Print bitstream file
  --remark-policy=<value>                                                - Specify the policy for remark output.
    =all                                                                 -   Print all remarks
    =final                                                               -   Print final remarks
  --remarks-filter=<string>                                              - Show all remarks: passed, missed, failed, analysis
  --remarks-filter-analyse=<string>                                      - Show analysis remarks
  --remarks-filter-failed=<string>                                       - Show failed remarks
  --remarks-filter-missed=<string>                                       - Show missed remarks
  --remarks-filter-passed=<string>                                       - Show passed remarks
  --remarks-output-file=<string>                                         - Output file for yaml and bitstream remark formats. Default is mlir-remarks.yaml or mlir-remarks.bitstream