Skip to content

Util

-iree-util-annotate-op-ordinalslink

Annotates ops with globally unique IDs for debugging.

-iree-util-apply-patternslink

Applies some risky/IREE-specific canonicalization patterns.

-iree-util-combine-initializerslink

Combines global initializers into one.

-iree-util-drop-compiler-hintslink

Deletes operations that have no runtime equivalent.

Deletes operations that have no runtime equivalent and are only used in the compiler. This should be performed after all other compiler passes.

-iree-util-dump-modulelink

Dumps the module IR to the given file path.

Dumps the module IR to the given file path in either textual (.mlir) or binary (.mlirbc) format. Source locations remain unchanged.

Optionslink

-path : File path to write the module text or binary into.

-iree-util-fixed-point-iteratorlink

Iterates a sub-pipeline to a fixed point.

-iree-util-fold-globalslink

Folds duplicate globals and propagates constants.

Statisticslink

global ops before folding : Number of util.global ops before folding
global ops after folding  : Number of util.global ops after folding

-iree-util-fuse-globalslink

Fuses correlated globals together.

-iree-util-hoist-into-globalslink

Greedily hoists eligible constant expressions into globals.

Optionslink

-max-size-increase-threshold : Maximum byte size increase allowed for constant expr hoisting policy toallow hoisting. The threshold is 1MB by default.

-iree-util-import-resourceslink

Imports IR with arbitrary large-data into resources that IREE can manage efficiently

MLIR has many interesting ways to store large constants, most of which derive from *ElementsAttr. Given the uniquing/inline behavior, this exacts very large runtime and memory overhead costs.

This is a temporary pass to convert a majority of the legacy DenseElementsAttr attributes to DenseResourceElementsAttr. Ideally this is done at the source (frontend), but this pass is provided to aid transition and testing by doing a manual conversion with iree-opt.

-iree-util-ipolink

Performs basic inter-procedural optimization.

-iree-util-optimize-int-arithmeticlink

Optimizes integer arithmetic using a variety of dataflow analysis and patterns.

Optionslink

-narrow-to-i32 : Flag indicating if computations that can be performed with 32 bits should be. Mainly used for GPU code generation to not waste registers.

-iree-util-propagate-subrangeslink

Propagates resource subranges across the program.

-iree-util-simplify-global-accesseslink

Hoists loads and sinks stores to variables to decrease data dependency regions.

-iree-util-strip-and-splat-constantslink

Strips constant util.global ops and replaces them with splats.

-iree-util-strip-debug-opslink

Strips debug ops, like assertions.

-iree-util-test-conversionlink

Tests util dialect conversion patterns.

Optionslink

-widen-integers        : Tests type conversion by widening integers to i32.
-structural-conversion : Tests generic structural conversion ops.

-iree-util-test-float-range-analysislink

Tests floating point range analysis.

Tests floating point range analysis by evaluating any 'iree_unregistered.test_fprange' op and setting the results on an attribute.