# `Beaver.MLIR.Context`

This module defines functions creating or destroying MLIR context.

# `context_option`

```elixir
@type context_option() ::
  {:allow_unregistered, boolean()}
  | {:all_dialects, boolean()}
  | {:threading, boolean()}
  | {:thread_pool,
     :application | Beaver.MLIR.LLVMThreadPool.t() | GenServer.server() | nil}
  | {:registry,
     Beaver.MLIR.DialectRegistry.t() | [Beaver.MLIR.DialectRegistry.t()]}
```

# `t`

```elixir
@type t() :: %Beaver.MLIR.Context{
  ref: term(),
  thread_pool_lease: term(),
  thread_pool_owner: term()
}
```

# `allow_unregistered_dialects`

# `create`

```elixir
@spec create([context_option()]) :: t()
```

Create a MLIR context. By default it registers and loads all dialects.

# `destroy`

# `implements_interface?`

# `infer_shaped?`

# `infer_type?`

# `make`

# `register_translations`

# `terminator?`

Check if the op name is terminator

# `with_registry`

Run a function with a registry appended to the context.

