Util
-iree-util-annotate-op-ordinals
link
Annotates ops with globally unique IDs for debugging.
-iree-util-apply-patterns
link
Applies some risky/IREE-specific canonicalization patterns.
-iree-util-combine-initializers
link
Combines global initializers into one.
-iree-util-drop-compiler-hints
link
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-module
link
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-iterator
link
Iterates a sub-pipeline to a fixed point.
-iree-util-fold-globals
link
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-globals
link
Fuses correlated globals together.
-iree-util-hoist-into-globals
link
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-resources
link
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-ipo
link
Performs basic inter-procedural optimization.
-iree-util-optimize-int-arithmetic
link
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-subranges
link
Propagates resource subranges across the program.
-iree-util-simplify-global-accesses
link
Hoists loads and sinks stores to variables to decrease data dependency regions.
-iree-util-strip-and-splat-constants
link
Strips constant util.global ops and replaces them with splats.
-iree-util-strip-debug-ops
link
Strips debug ops, like assertions.
-iree-util-test-conversion
link
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-analysis
link
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.