Beaver.MLIR.Transforms (beaver v0.3.4)

Transformations MLIR provides by default.

Summary

Functions

Canonicalize operations

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

Bufferize the linalg dialect

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.

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 operations

Argument name in MLIR CLI

canonicalize

Pass name in TableGen

Canonicalizer

Link to this function

canonicalize(composer_or_op)

Link to this function

control_flow_sink()

Sink operations into conditional blocks

Argument name in MLIR CLI

control-flow-sink

Pass name in TableGen

ControlFlowSink

Link to this function

control_flow_sink(composer_or_op)

Link to this function

convert_elementwise_to_linalg()

Convert ElementwiseMappable ops to linalg

Argument name in MLIR CLI

convert-elementwise-to-linalg

Pass name in TableGen

ConvertElementwiseToLinalg

Link to this function

convert_elementwise_to_linalg(composer_or_op)

Link to this function

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

LinalgLowerToAffineLoops

Link to this function

convert_linalg_to_affine_loops(composer_or_op)

Link to this function

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

LinalgLowerToLoops

Link to this function

convert_linalg_to_loops(composer_or_op)

Link to this function

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

LinalgLowerToParallelLoops

Link to this function

convert_linalg_to_parallel_loops(composer_or_op)

Eliminate common sub-expressions

Argument name in MLIR CLI

cse

Pass name in TableGen

CSE

Link to this function

cse(composer_or_op)

Link to this function

generate_runtime_verification()

Generate additional runtime op verification checks

Argument name in MLIR CLI

generate-runtime-verification

Pass name in TableGen

GenerateRuntimeVerification

Link to this function

generate_runtime_verification(composer_or_op)

Link to this function

gpu_async_region()

Make GPU ops async

Argument name in MLIR CLI

gpu-async-region

Pass name in TableGen

GpuAsyncRegionPass

Link to this function

gpu_async_region(composer_or_op)

Link to this function

gpu_decompose_memrefs()

Decomposes memref index computation into explicit ops.

Argument name in MLIR CLI

gpu-decompose-memrefs

Pass name in TableGen

GpuDecomposeMemrefsPass

Link to this function

gpu_decompose_memrefs(composer_or_op)

Link to this function

gpu_eliminate_barriers()

Erase unnecessary barriers

Argument name in MLIR CLI

gpu-eliminate-barriers

Pass name in TableGen

GpuEliminateBarriers

Link to this function

gpu_eliminate_barriers(composer_or_op)

Link to this function

gpu_kernel_outlining()

Outline gpu.launch bodies to kernel functions

Argument name in MLIR CLI

gpu-kernel-outlining

Pass name in TableGen

GpuKernelOutlining

Link to this function

gpu_kernel_outlining(composer_or_op)

Link to this function

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

Link to this function

gpu_launch_sink_index_computations(composer_or_op)

Link to this function

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

Link to this function

gpu_map_parallel_loops(composer_or_op)

Link to this function

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

Link to this function

gpu_module_to_binary(composer_or_op)

Inline function calls

Argument name in MLIR CLI

inline

Pass name in TableGen

Inliner

Link to this function

inline(composer_or_op)

Link to this function

linalg_bufferize()

Bufferize the linalg dialect

Argument name in MLIR CLI

linalg-bufferize

Pass name in TableGen

LinalgBufferize

Link to this function

linalg_bufferize(composer_or_op)

Link to this function

linalg_detensorize()

Detensorize linalg ops

Argument name in MLIR CLI

linalg-detensorize

Pass name in TableGen

LinalgDetensorize

Link to this function

linalg_detensorize(composer_or_op)

Link to this function

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

LinalgFoldUnitExtentDims

Link to this function

linalg_fold_unit_extent_dims(composer_or_op)

Link to this function

linalg_fuse_elementwise_ops()

Fuse elementwise operations on tensors

Argument name in MLIR CLI

linalg-fuse-elementwise-ops

Pass name in TableGen

LinalgElementwiseOpFusion

Link to this function

linalg_fuse_elementwise_ops(composer_or_op)

Link to this function

linalg_generalize_named_ops()

Convert named ops into generic ops

Argument name in MLIR CLI

linalg-generalize-named-ops

Pass name in TableGen

LinalgGeneralization

Link to this function

linalg_generalize_named_ops(composer_or_op)

Link to this function

linalg_inline_scalar_operands()

Inline scalar operands into linalg generic ops

Argument name in MLIR CLI

linalg-inline-scalar-operands

Pass name in TableGen

LinalgInlineScalarOperands

Link to this function

linalg_inline_scalar_operands(composer_or_op)

Link to this function

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

LinalgNamedOpConversion

Link to this function

linalg_named_op_conversion(composer_or_op)

Link to this function

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

Link to this function

loop_invariant_code_motion(composer_or_op)

Link to this function

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

Link to this function

loop_invariant_subset_hoisting(composer_or_op)

Promotes memory slots into values.

Argument name in MLIR CLI

mem2reg

Pass name in TableGen

Mem2Reg

Link to this function

mem2reg(composer_or_op)

Link to this function

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

Link to this function

nvvm_attach_target(composer_or_op)

Link to this function

remove_dead_values()

Remove dead values

Argument name in MLIR CLI

remove-dead-values

Pass name in TableGen

RemoveDeadValues

Link to this function

remove_dead_values(composer_or_op)

Link to this function

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

Link to this function

rocdl_attach_target(composer_or_op)

Sparse Conditional Constant Propagation

Argument name in MLIR CLI

sccp

Pass name in TableGen

SCCP

Link to this function

sccp(composer_or_op)

Link to this function

snapshot_op_locations()

Generate new locations from the current IR

Argument name in MLIR CLI

snapshot-op-locations

Pass name in TableGen

LocationSnapshot

Link to this function

snapshot_op_locations(composer_or_op)

Link to this function

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

Link to this function

spirv_attach_target(composer_or_op)

Scalar Replacement of Aggregates

Argument name in MLIR CLI

sroa

Pass name in TableGen

SROA

Link to this function

sroa(composer_or_op)

Link to this function

strip_debuginfo()

Strip debug info from all operations

Argument name in MLIR CLI

strip-debuginfo

Pass name in TableGen

StripDebugInfo

Link to this function

strip_debuginfo(composer_or_op)

Eliminate dead symbols

Argument name in MLIR CLI

symbol-dce

Pass name in TableGen

SymbolDCE

Link to this function

symbol_dce(composer_or_op)

Link to this function

symbol_privatize()

Mark symbols private

Argument name in MLIR CLI

symbol-privatize

Pass name in TableGen

SymbolPrivatize

Link to this function

symbol_privatize(composer_or_op)

Link to this function

topological_sort()

Sort regions without SSA dominance in topological order

Argument name in MLIR CLI

topological-sort

Pass name in TableGen

TopologicalSort

Link to this function

topological_sort(composer_or_op)

Link to this function

view_op_graph()

Print Graphviz visualization of an operation

Argument name in MLIR CLI

view-op-graph

Pass name in TableGen

ViewOpGraph

Link to this function

view_op_graph(composer_or_op)