SPIRV
-iree-convert-to-spirv
link
Perform the final conversion to SPIR-V dialect
Optionslink
-index-bits : Specify the bit widths for SPIR-V indices
-iree-spirv-annotate-winograd-loops
link
Annotate innermost Winograd loops with spirv distribute attribute
-iree-spirv-breakdown-large-vector
link
Break down vectors not natively supported by SPIR-V
-iree-spirv-convert-gpu-target
link
Convert #iree_gpu.target into #spirv.target_env
-iree-spirv-emulate-i64
link
Emulate 64-bit integer ops with 32-bit integer ops
-iree-spirv-erase-storage-buffer-static-shape
link
Turn static shaped storage buffer subspan ops into dynamic shaped ones
-iree-spirv-final-vector-lowering
link
Perform final lowering of vectors ops to fit SPIR-V
-iree-spirv-initial-vector-lowering
link
Perform initial lowering of vectors ops to fit SPIR-V
-iree-spirv-link-executables
link
Links SPIR-V HAL executables within the top-level program module.
-iree-spirv-lower-executable-target-pass
link
Lower the executable target to SPIR-V using one of the IREE::HAL::DispatchLoweringPassPipeline
Main pass to lower executables to scalar + vector code on SPIR-V path. Invokes one of the pass pipelines that translate the executable to scalar + vector code.
-iree-spirv-lower-executable-using-transform-dialect
link
Lower the executable target to SPIR-V using transform dialect followed by some passes to do SPIR-V specific vectorization
Pass to lower executables using Transform dialect on the SPIR-V backend. This shouldnt be a separate pass, but it is since there are some extra spir-v passes that need to be run as well.
-iree-spirv-map-memref-storage-class
link
Map MemRef memory spaces to SPIR-V storage classes
-iree-spirv-materialize-executable-conditions
link
Materialize SPIR-V target requirements of hal.exectuable.variant ops into hal.executable.condition regions
-iree-spirv-select-lowering-strategy-pass
link
Select the IREE::HAL::DispatchLoweringPassPipeline for loweringto SPIR-V
-iree-spirv-tile-and-distribute
link
Tile and distribute Linalg ops with buffer semantics to invocations
-iree-spirv-tile-and-promote
link
Promote tiled Linalg ops with buffer semantics to use workgroup memory and then tile to invocations
Optionslink
-promote-c : Promote C matrix to use shared memory
-skip-thread : Skip tiling and distributing to GPU threads
-iree-spirv-tile-to-cooperative-ops
link
Tile Linalg ops with buffer semantics to subgroups and vectorize to vector ops suitable for lowering to SPIR-V cooperative ops
-iree-spirv-trim-executable-target-env
link
Trim the SPIR-V target environment of a HAL executable variant to the minimal requirement per the compiled spirv.module op needs
-iree-spirv-vector-to-gpu-subgroup-mma-ops
link
Pass to convert vector ops to GPU subgroup MMA ops.
-iree-spirv-vectorize-load-store
link
Vectorize load/store of memrefs for better memory access
Converts memref of scalar to memref of vector of efficent size. This will allow to convert memory accesses to vector load/store in SPIR-V without having pointer bitcast.
-iree-spirv-vectorize-to-cooperative-ops
link
Tile Linalg ops with buffer semantics to subgroups and vectorize to vector ops suitable for lowering to SPIR-V cooperative ops