Skip to content

VM

-iree-vm-conversionlink

Converts from various dialects (standard, HAL, etc) to the VM dialect.

Optionslink

-index-bits                  : Target size of `index` when converted to an integer in bits.
-f32-extension               : Whether the f32 extension is enabled in the target VM.
-f64-extension               : Whether the f64 extension is enabled in the target VM.
-truncate-unsupported-floats : Truncate f64 types to f32 when the f64 extension is not enabled.
-optimize-for-stack-size     : Prefer optimizations that reduce VM stack usage over performance.

-iree-vm-deduplicate-rodatalink

Deduplicates vm.rodata ops in the module.

-iree-vm-drop-empty-module-initializerslink

Drops __init/__deinit functions that have no ops.

-iree-vm-drop-unused-callslink

Drops vm.call ops that have no side effects and are unused.

-iree-vm-global-initializationlink

Creates module-level global init/deinit functions.

Gathers all module-level global init/deinit functions into a single location such that the runtime can init/deinit everything at once. This hides the initialization order rules from the runtime behind singular invocations (__init and __deinit) and prevents the need for the dynamic linker to need initialization order metadata.

-iree-vm-hoist-inlined-rodatalink

Hoists inline vm.rodata.inline values to module-level constant storage.

-iree-vm-ordinal-allocationlink

Assigns module-unique ordinals to function/global/etc symbols within the module.

Assigns per-category ordinals to module-level symbols in the module. Each ordinal is unique per-category and ordinals are contiguous starting from zero.

-iree-vm-reify-rodata-tableslink

Reifies and pads vm.rodata.table.inline ops.

Converts vm.rodata.table.inline ops into two vm.rodata.inline ops: one for the flat data and the other for a newly constructed table for the element subviews.

-iree-vm-resolve-rodata-loadslink

Resolves global loads of rodata ops to direct rodata references.

-iree-vm-sink-defining-opslink

Sinks defining ops with few uses to their use-sites.

Sinks defining ops with few uses to their use-sites to reduce the total number of live registers at the cost of additional storage requirements.