# `Beaver.MLIR.ConversionPatternRewriter`

A conversion-aware pattern rewriter, including 1:N operation replacement.

# `t`

```elixir
@type t() :: %Beaver.MLIR.ConversionPatternRewriter{ref: term()}
```

# `as_base`

# `as_pattern_rewriter`

# `block`

# `cancel_op_modification`

# `clear_insertion_point`

# `clone`

# `clone_region_before`

# `clone_with_mapping`

# `clone_without_regions`

# `context`

# `convert_region_types`

# `create_block_before`

# `erase_block`

# `erase_op`

# `finalize_op_modification`

# `inline_block_before`

# `inline_region_before`

# `insert`

# `insertion_block`

# `make`

# `merge_blocks`

# `move_block_before`

# `move_op_after`

# `move_op_before`

# `operation_after_insertion`

# `replace`

# `replace_all_op_uses_with_operation`

# `replace_all_op_uses_with_value_range`

# `replace_all_uses_except`

# `replace_all_uses_with`

# `replace_all_value_range_uses_with`

# `replace_op`

Replaces an operation through the conversion rewriter.

Unlike `RewriterBase.replace_op/3`, the replacement types may differ from
the original result types because the pattern's type converter defines the
legal mapping.

# `replace_op_uses_within_block`

# `replace_op_with_multiple`

```elixir
@spec replace_op_with_multiple(t(), Beaver.MLIR.Operation.t(), [
  [Beaver.MLIR.Value.t()]
]) :: :ok
```

# `replace_op_with_operation`

# `replace_op_with_values`

# `restore_insertion_point`

# `save_insertion_point`

# `set_insertion_point_after`

# `set_insertion_point_after_value`

# `set_insertion_point_before`

# `set_insertion_point_to_end`

# `set_insertion_point_to_start`

# `start_op_modification`

# `with_insertion_point`

# `with_insertion_point`

