Beaver.MLIR.Transform (beaver v0.4.0)

Transformations MLIR provides by default.

Summary

Functions

Canonicalize operations

Composite fixed point pass

Sink operations into conditional blocks

Convert ElementwiseMappable ops to linalg

Lower the operations from the linalg dialect into affine loops

Lower the operations from the linalg dialect into loops

Lower the operations from the linalg dialect into parallel loops

Eliminate common sub-expressions

Generate additional runtime op verification checks

Make GPU ops async

Decomposes memref index computation into explicit ops.

Erase unnecessary barriers

Outline gpu.launch bodies to kernel functions

Sink index computations into gpu.launch body

Greedily maps loops to GPU hardware dimensions.

Transforms a GPU module into a GPU binary.

Inline function calls

Convert linalg matmul ops to block layout and back

Detensorize linalg ops

Remove unit-extent dimension in Linalg ops on tensors

Fuse elementwise operations on tensors

Convert named ops into generic ops

Inline scalar operands into linalg generic ops

Convert from one named linalg op to another.

Convert generic ops back to named ops

Hoist loop invariant instructions outside of the loop

Hoist loop invariant subset ops outside of the loop

Promotes memory slots into values.

Attaches an NVVM target attribute to a GPU Module.

Print IR on the debug stream

Print statistics of operations

Remove dead values

Attaches a ROCDL target attribute to a GPU Module.

Sparse Conditional Constant Propagation

Generate new locations from the current IR

Attaches an SPIR-V target attribute to a GPU Module.

Scalar Replacement of Aggregates

Strip debug info from all operations

Eliminate dead symbols

Mark symbols private

Sort regions without SSA dominance in topological order

Print Graphviz visualization of an operation

Functions

canonicalize()

Canonicalize operations

Argument name in MLIR CLI

canonicalize

Pass name in TableGen

Canonicalizer

canonicalize(composer_or_op)

composite_fixed_point_pass()

Composite fixed point pass

Argument name in MLIR CLI

composite-fixed-point-pass

Pass name in TableGen

CompositeFixedPointPass

composite_fixed_point_pass(composer_or_op)

control_flow_sink()

Sink operations into conditional blocks

Argument name in MLIR CLI

control-flow-sink

Pass name in TableGen

ControlFlowSink

control_flow_sink(composer_or_op)

convert_elementwise_to_linalg()

Convert ElementwiseMappable ops to linalg

Argument name in MLIR CLI

convert-elementwise-to-linalg

Pass name in TableGen

ConvertElementwiseToLinalgPass

convert_elementwise_to_linalg(composer_or_op)

convert_linalg_to_affine_loops()

Lower the operations from the linalg dialect into affine loops

Argument name in MLIR CLI

convert-linalg-to-affine-loops

Pass name in TableGen

ConvertLinalgToAffineLoopsPass

convert_linalg_to_affine_loops(composer_or_op)

convert_linalg_to_loops()

Lower the operations from the linalg dialect into loops

Argument name in MLIR CLI

convert-linalg-to-loops

Pass name in TableGen

ConvertLinalgToLoopsPass

convert_linalg_to_loops(composer_or_op)

convert_linalg_to_parallel_loops()

Lower the operations from the linalg dialect into parallel loops

Argument name in MLIR CLI

convert-linalg-to-parallel-loops

Pass name in TableGen

ConvertLinalgToParallelLoopsPass

convert_linalg_to_parallel_loops(composer_or_op)

cse()

Eliminate common sub-expressions

Argument name in MLIR CLI

cse

Pass name in TableGen

CSE

cse(composer_or_op)

generate_runtime_verification()

Generate additional runtime op verification checks

Argument name in MLIR CLI

generate-runtime-verification

Pass name in TableGen

GenerateRuntimeVerification

generate_runtime_verification(composer_or_op)

gpu_async_region()

Make GPU ops async

Argument name in MLIR CLI

gpu-async-region

Pass name in TableGen

GpuAsyncRegionPass

gpu_async_region(composer_or_op)

gpu_decompose_memrefs()

Decomposes memref index computation into explicit ops.

Argument name in MLIR CLI

gpu-decompose-memrefs

Pass name in TableGen

GpuDecomposeMemrefsPass

gpu_decompose_memrefs(composer_or_op)

gpu_eliminate_barriers()

Erase unnecessary barriers

Argument name in MLIR CLI

gpu-eliminate-barriers

Pass name in TableGen

GpuEliminateBarriers

gpu_eliminate_barriers(composer_or_op)

gpu_kernel_outlining()

Outline gpu.launch bodies to kernel functions

Argument name in MLIR CLI

gpu-kernel-outlining

Pass name in TableGen

GpuKernelOutlining

gpu_kernel_outlining(composer_or_op)

gpu_launch_sink_index_computations()

Sink index computations into gpu.launch body

Argument name in MLIR CLI

gpu-launch-sink-index-computations

Pass name in TableGen

GpuLaunchSinkIndexComputations

gpu_launch_sink_index_computations(composer_or_op)

gpu_map_parallel_loops()

Greedily maps loops to GPU hardware dimensions.

Argument name in MLIR CLI

gpu-map-parallel-loops

Pass name in TableGen

GpuMapParallelLoopsPass

gpu_map_parallel_loops(composer_or_op)

gpu_module_to_binary()

Transforms a GPU module into a GPU binary.

Argument name in MLIR CLI

gpu-module-to-binary

Pass name in TableGen

GpuModuleToBinaryPass

gpu_module_to_binary(composer_or_op)

inline()

Inline function calls

Argument name in MLIR CLI

inline

Pass name in TableGen

Inliner

inline(composer_or_op)

linalg_block_pack_matmul()

Convert linalg matmul ops to block layout and back

Argument name in MLIR CLI

linalg-block-pack-matmul

Pass name in TableGen

LinalgBlockPackMatmul

linalg_block_pack_matmul(composer_or_op)

linalg_detensorize()

Detensorize linalg ops

Argument name in MLIR CLI

linalg-detensorize

Pass name in TableGen

LinalgDetensorizePass

linalg_detensorize(composer_or_op)

linalg_fold_unit_extent_dims()

Remove unit-extent dimension in Linalg ops on tensors

Argument name in MLIR CLI

linalg-fold-unit-extent-dims

Pass name in TableGen

LinalgFoldUnitExtentDimsPass

linalg_fold_unit_extent_dims(composer_or_op)

linalg_fuse_elementwise_ops()

Fuse elementwise operations on tensors

Argument name in MLIR CLI

linalg-fuse-elementwise-ops

Pass name in TableGen

LinalgElementwiseOpFusionPass

linalg_fuse_elementwise_ops(composer_or_op)

linalg_generalize_named_ops()

Convert named ops into generic ops

Argument name in MLIR CLI

linalg-generalize-named-ops

Pass name in TableGen

LinalgGeneralizeNamedOpsPass

linalg_generalize_named_ops(composer_or_op)

linalg_inline_scalar_operands()

Inline scalar operands into linalg generic ops

Argument name in MLIR CLI

linalg-inline-scalar-operands

Pass name in TableGen

LinalgInlineScalarOperandsPass

linalg_inline_scalar_operands(composer_or_op)

linalg_named_op_conversion()

Convert from one named linalg op to another.

Argument name in MLIR CLI

linalg-named-op-conversion

Pass name in TableGen

LinalgNamedOpConversionPass

linalg_named_op_conversion(composer_or_op)

linalg_specialize_generic_ops()

Convert generic ops back to named ops

Argument name in MLIR CLI

linalg-specialize-generic-ops

Pass name in TableGen

LinalgSpecializeGenericOpsPass

linalg_specialize_generic_ops(composer_or_op)

loop_invariant_code_motion()

Hoist loop invariant instructions outside of the loop

Argument name in MLIR CLI

loop-invariant-code-motion

Pass name in TableGen

LoopInvariantCodeMotion

loop_invariant_code_motion(composer_or_op)

loop_invariant_subset_hoisting()

Hoist loop invariant subset ops outside of the loop

Argument name in MLIR CLI

loop-invariant-subset-hoisting

Pass name in TableGen

LoopInvariantSubsetHoisting

loop_invariant_subset_hoisting(composer_or_op)

mem2reg()

Promotes memory slots into values.

Argument name in MLIR CLI

mem2reg

Pass name in TableGen

Mem2Reg

mem2reg(composer_or_op)

nvvm_attach_target()

Attaches an NVVM target attribute to a GPU Module.

Argument name in MLIR CLI

nvvm-attach-target

Pass name in TableGen

GpuNVVMAttachTarget

nvvm_attach_target(composer_or_op)

remove_dead_values()

Remove dead values

Argument name in MLIR CLI

remove-dead-values

Pass name in TableGen

RemoveDeadValues

remove_dead_values(composer_or_op)

rocdl_attach_target()

Attaches a ROCDL target attribute to a GPU Module.

Argument name in MLIR CLI

rocdl-attach-target

Pass name in TableGen

GpuROCDLAttachTarget

rocdl_attach_target(composer_or_op)

sccp()

Sparse Conditional Constant Propagation

Argument name in MLIR CLI

sccp

Pass name in TableGen

SCCP

sccp(composer_or_op)

snapshot_op_locations()

Generate new locations from the current IR

Argument name in MLIR CLI

snapshot-op-locations

Pass name in TableGen

LocationSnapshot

snapshot_op_locations(composer_or_op)

spirv_attach_target()

Attaches an SPIR-V target attribute to a GPU Module.

Argument name in MLIR CLI

spirv-attach-target

Pass name in TableGen

GpuSPIRVAttachTarget

spirv_attach_target(composer_or_op)

sroa()

Scalar Replacement of Aggregates

Argument name in MLIR CLI

sroa

Pass name in TableGen

SROA

sroa(composer_or_op)

strip_debuginfo()

Strip debug info from all operations

Argument name in MLIR CLI

strip-debuginfo

Pass name in TableGen

StripDebugInfo

strip_debuginfo(composer_or_op)

symbol_dce()

Eliminate dead symbols

Argument name in MLIR CLI

symbol-dce

Pass name in TableGen

SymbolDCE

symbol_dce(composer_or_op)

symbol_privatize()

Mark symbols private

Argument name in MLIR CLI

symbol-privatize

Pass name in TableGen

SymbolPrivatize

symbol_privatize(composer_or_op)

topological_sort()

Sort regions without SSA dominance in topological order

Argument name in MLIR CLI

topological-sort

Pass name in TableGen

TopologicalSort

topological_sort(composer_or_op)

view_op_graph()

Print Graphviz visualization of an operation

Argument name in MLIR CLI

view-op-graph

Pass name in TableGen

ViewOpGraph

view_op_graph(composer_or_op)