# beaver v0.4.8 - Table of Contents

> Beaver, a MLIR Toolkit in Elixir

## Pages

- [Your first compiler with Beaver!](your-first-beaver-compiler.md)
- [Incremental MLIR compilation](incremental-compilation-runtime.md)
- [Transform schedule execution and autotuning](transform-autotuning.md)
- [Defining dynamic dialects with Slang](slang.md)
- [Lowering a Slang dialect](dialect-conversion.md)
- [Native Rewrite Patterns](native-rewrite-patterns.md)
- [Action Tracing](action-tracing.md)
- [ENIF pointer interoperability](enif-pointer-interop.md)
- [Blocks and the underscore convention](blocks.md)
- [Contributing to Beaver](contributing.md)
- [README](readme.md)

## Modules

- [Beaver.Triton](Beaver.Triton.md): Registers Triton's core dialects and passes in a Beaver MLIR context.

- DSL
  - [Beaver](Beaver.md): This module contains top level functions and macros for Beaver DSL for MLIR.
  - [Beaver.Env](Beaver.Env.md): This module defines macros to getting MLIR context, region, block within the do block of mlir/1. It works like __MODULE__/0, __CALLER__/0 of Elixir special forms.

  - [Beaver.Pattern](Beaver.Pattern.md): Beaver pattern DSL for MLIR, a PDL frontend in Elixir.

  - [Beaver.Pattern.Native](Beaver.Pattern.Native.md): An explicitly callback-backed rewrite DSL.
  - [Beaver.Pattern.Native.Descriptor](Beaver.Pattern.Native.Descriptor.md): A native rewrite declaration ready to be added to an MLIR rewrite pattern set.
  - [Beaver.SSA](Beaver.SSA.md): Storing MLIR IR structure with a Elixir struct. Macros like `Beaver.mlir/1` will generate SSA structs defined by this module.
  - [Beaver.Slang](Beaver.Slang.md): Defines extensible MLIR dialects in Elixir and compiles their schemas to
[IRDL](https://mlir.llvm.org/docs/Dialects/IRDL/).

- Utils
  - [Beaver.Composer](Beaver.Composer.md): This module provide functions to compose and run passes.

  - [Beaver.Deferred](Beaver.Deferred.md): Functions to work with IR entities not eagerly created. Usually it is an attribute/type doesn't get created until there is a MLIR context from block/op state.

  - [Beaver.Printer](Beaver.Printer.md): This module provides a way to run MLIR CAPI with a string callback and user data.

  - [Beaver.Sigils](Beaver.Sigils.md): Sigils return a function to create MLIR elements by parsing the content.

  - [Beaver.Walker](Beaver.Walker.md): Provides traversal capabilities for MLIR structures.

- ENIF
  - [Beaver.ENIF](Beaver.ENIF.md): This module provides functions to work with Erlang's [erl_nif](https://www.erlang.org/doc/man/erl_nif.html) APIs in MLIR.
  - [Beaver.ENIF.Type](Beaver.ENIF.Type.md): Query the MLIR type of an Erlang term or environment.

  - [Beaver.ENIF.UseENIFAlloc](Beaver.ENIF.UseENIFAlloc.md): Replace LLVM call ops of `malloc` and `free` with `enif_alloc` and `enif_free`.

- MLIR
  - [Beaver.MLIR](Beaver.MLIR.md): Core functionality for working with MLIR.
  - [Beaver.MLIR.ActionTracing](Beaver.MLIR.ActionTracing.md): Exposes MLIR Action Tracing through Elixir telemetry.
  - [Beaver.MLIR.ActionTracing.Session](Beaver.MLIR.ActionTracing.Session.md): A live context-scoped action tracing session.
  - [Beaver.MLIR.AffineExpr](Beaver.MLIR.AffineExpr.md)
  - [Beaver.MLIR.AffineMap](Beaver.MLIR.AffineMap.md): This module defines functions working with MLIR AffineMap.

  - [Beaver.MLIR.AsmState](Beaver.MLIR.AsmState.md)
  - [Beaver.MLIR.Attribute](Beaver.MLIR.Attribute.md): This module defines functions parsing and creating attributes in MLIR.

  - [Beaver.MLIR.Block](Beaver.MLIR.Block.md): This module defines functions working with MLIR Block.

  - [Beaver.MLIR.Bytecode](Beaver.MLIR.Bytecode.md): Reads and writes versioned MLIR bytecode.
  - [Beaver.MLIR.BytecodeWriterConfig](Beaver.MLIR.BytecodeWriterConfig.md)
  - [Beaver.MLIR.CAPI](Beaver.MLIR.CAPI.md): This module ships MLIR's C API. These NIFs are generated from headers in LLVM repo and this repo's headers providing supplemental functions.
  - [Beaver.MLIR.CompilationCache](Beaver.MLIR.CompilationCache.md): Common access to the incremental compiler's memory and filesystem caches.
  - [Beaver.MLIR.CompilationCache.File](Beaver.MLIR.CompilationCache.File.md): Filesystem backend for incremental compilation artifacts.
  - [Beaver.MLIR.CompilationCache.Memory](Beaver.MLIR.CompilationCache.Memory.md): In-memory backend for incremental compilation artifacts.
  - [Beaver.MLIR.CompilationPlan](Beaver.MLIR.CompilationPlan.md): A reusable, inspectable, cache-stable MLIR compiler declaration.
  - [Beaver.MLIR.CompilationRuntime](Beaver.MLIR.CompilationRuntime.md): Incremental MLIR compilation for long-running BEAM applications.
  - [Beaver.MLIR.CompilationRuntime.Artifact](Beaver.MLIR.CompilationRuntime.Artifact.md): A reusable, version-checked MLIR bytecode compilation artifact.
  - [Beaver.MLIR.CompilationRuntime.CacheKey](Beaver.MLIR.CompilationRuntime.CacheKey.md): Deterministic compatibility keys for incremental MLIR artifacts.
  - [Beaver.MLIR.ConditionallySpeculatable](Beaver.MLIR.ConditionallySpeculatable.md): Installs and queries a callback-backed ConditionallySpeculatable fallback
interface model.
  - [Beaver.MLIR.ConditionallySpeculatableOpInterfaceCallbacks](Beaver.MLIR.ConditionallySpeculatableOpInterfaceCallbacks.md)
  - [Beaver.MLIR.Context](Beaver.MLIR.Context.md): This module defines functions creating or destroying MLIR context.

  - [Beaver.MLIR.Conversion](Beaver.MLIR.Conversion.md): High-level, diagnostic-aware MLIR dialect conversion.
  - [Beaver.MLIR.Conversion.Error](Beaver.MLIR.Conversion.Error.md): An error returned by a failed dialect conversion.
  - [Beaver.MLIR.Conversion.Ex](Beaver.MLIR.Conversion.Ex.md): Conversion plan for lowering the `ex` dialect to `func`/`arith`/`scf`/`cf`.
  - [Beaver.MLIR.Conversion.Plan](Beaver.MLIR.Conversion.Plan.md): An inspectable, declarative, scoped composition layer for MLIR dialect conversion.
  - [Beaver.MLIR.ConversionConfig](Beaver.MLIR.ConversionConfig.md): An owning high-level wrapper for MLIR dialect conversion configuration.
  - [Beaver.MLIR.ConversionPattern](Beaver.MLIR.ConversionPattern.md): Callback-backed dialect conversion patterns.
  - [Beaver.MLIR.ConversionPatternRewriter](Beaver.MLIR.ConversionPatternRewriter.md): A conversion-aware pattern rewriter, including 1:N operation replacement.

  - [Beaver.MLIR.ConversionTarget](Beaver.MLIR.ConversionTarget.md): An owning, callback-safe MLIR dialect conversion target.
  - [Beaver.MLIR.Debug](Beaver.MLIR.Debug.md): Configure MLIR global debug options.

  - [Beaver.MLIR.Diagnostic](Beaver.MLIR.Diagnostic.md): This module provides functions to work with MLIR diagnostics.

  - [Beaver.MLIR.DiagnosticHandler](Beaver.MLIR.DiagnosticHandler.md)
  - [Beaver.MLIR.DiagnosticHandlerID](Beaver.MLIR.DiagnosticHandlerID.md)
  - [Beaver.MLIR.DiagnosticSeverity](Beaver.MLIR.DiagnosticSeverity.md)
  - [Beaver.MLIR.DominanceInfo](Beaver.MLIR.DominanceInfo.md): High-level access to MLIR dominance analysis.
  - [Beaver.MLIR.DynamicAttrDefinition](Beaver.MLIR.DynamicAttrDefinition.md)
  - [Beaver.MLIR.DynamicOpTrait](Beaver.MLIR.DynamicOpTrait.md)
  - [Beaver.MLIR.DynamicOpTraitCallbacks](Beaver.MLIR.DynamicOpTraitCallbacks.md)
  - [Beaver.MLIR.DynamicTypeDefinition](Beaver.MLIR.DynamicTypeDefinition.md)
  - [Beaver.MLIR.ExecutionEngine](Beaver.MLIR.ExecutionEngine.md): This module defines functions working with MLIR ExecutionEngine.

  - [Beaver.MLIR.ExternalInterface](Beaver.MLIR.ExternalInterface.md): Owns callback-backed MLIR external interface models.
  - [Beaver.MLIR.ExternalInterface.Attachment](Beaver.MLIR.ExternalInterface.Attachment.md): A live callback-backed external interface attachment.
  - [Beaver.MLIR.ExternalPassCallbacks](Beaver.MLIR.ExternalPassCallbacks.md)
  - [Beaver.MLIR.FrozenRewritePatternSet](Beaver.MLIR.FrozenRewritePatternSet.md): This module defines functions working with MLIR FrozenRewritePatternSet.

  - [Beaver.MLIR.FunctionType](Beaver.MLIR.FunctionType.md): This module provides utilities for MLIR function type.

  - [Beaver.MLIR.IRMapping](Beaver.MLIR.IRMapping.md): An owned mapping between values, blocks, and operations in two pieces of IR.
  - [Beaver.MLIR.IRRewriter](Beaver.MLIR.IRRewriter.md): Owns standalone MLIR IR rewriters.
  - [Beaver.MLIR.Identifier](Beaver.MLIR.Identifier.md): This module defines functions working with MLIR Identifier.

  - [Beaver.MLIR.InsertionPoint](Beaver.MLIR.InsertionPoint.md): Functions to work with insertion point in Beaver DSL environment.

  - [Beaver.MLIR.IntegerSet](Beaver.MLIR.IntegerSet.md)
  - [Beaver.MLIR.LLVMRawFdOStream](Beaver.MLIR.LLVMRawFdOStream.md)
  - [Beaver.MLIR.LLVMThreadPool](Beaver.MLIR.LLVMThreadPool.md)
  - [Beaver.MLIR.Location](Beaver.MLIR.Location.md): This module defines functions working with MLIR Location.

  - [Beaver.MLIR.LogicalResult](Beaver.MLIR.LogicalResult.md): This module defines functions working with MLIR LogicalResult.

  - [Beaver.MLIR.MemoryEffect](Beaver.MLIR.MemoryEffect.md)
  - [Beaver.MLIR.MemoryEffectInstance](Beaver.MLIR.MemoryEffectInstance.md)
  - [Beaver.MLIR.MemoryEffectInstancesList](Beaver.MLIR.MemoryEffectInstancesList.md)
  - [Beaver.MLIR.MemoryEffects](Beaver.MLIR.MemoryEffects.md): Implements MLIR's `MemoryEffectsOpInterface` for dynamic operations.
  - [Beaver.MLIR.MemoryEffectsOpInterfaceCallbacks](Beaver.MLIR.MemoryEffectsOpInterfaceCallbacks.md)
  - [Beaver.MLIR.Module](Beaver.MLIR.Module.md): This module defines functions working with MLIR Module.

  - [Beaver.MLIR.NamedAttribute](Beaver.MLIR.NamedAttribute.md): This module defines a wrapper struct of NamedAttribute in MLIR

  - [Beaver.MLIR.ODS](Beaver.MLIR.ODS.md): ODS helper functions to work with special concepts in ODS.

  - [Beaver.MLIR.ODS.Dump](Beaver.MLIR.ODS.Dump.md): This module provides functionality for working with MLIR ODS (Operation Definition Specification) dumps.
It allows looking up operation definitions by name and generating documentation for them.
  - [Beaver.MLIR.OpOperand](Beaver.MLIR.OpOperand.md): This module defines functions working with MLIR OpOperand.

  - [Beaver.MLIR.OpOperandReplaceFilterCallback](Beaver.MLIR.OpOperandReplaceFilterCallback.md)
  - [Beaver.MLIR.OpPassManager](Beaver.MLIR.OpPassManager.md)
  - [Beaver.MLIR.OpPrintingFlags](Beaver.MLIR.OpPrintingFlags.md)
  - [Beaver.MLIR.Operation](Beaver.MLIR.Operation.md): This module defines functions working with MLIR Operation.

  - [Beaver.MLIR.OperationWalkCallback](Beaver.MLIR.OperationWalkCallback.md)
  - [Beaver.MLIR.Pass](Beaver.MLIR.Pass.md): This module defines functions working with MLIR Pass.

  - [Beaver.MLIR.PassManager](Beaver.MLIR.PassManager.md): This module defines functions working with MLIR PassManager.

  - [Beaver.MLIR.PatternDescriptorOpInterface](Beaver.MLIR.PatternDescriptorOpInterface.md): Implements Transform dialect's `PatternDescriptorOpInterface` for dynamic
operations.
  - [Beaver.MLIR.PatternDescriptorOpInterfaceCallbacks](Beaver.MLIR.PatternDescriptorOpInterfaceCallbacks.md)
  - [Beaver.MLIR.PatternRewriter](Beaver.MLIR.PatternRewriter.md): This module defines functions working with MLIR PatternRewriter.

  - [Beaver.MLIR.PostDominanceInfo](Beaver.MLIR.PostDominanceInfo.md): High-level access to MLIR post-dominance analysis.
  - [Beaver.MLIR.Region](Beaver.MLIR.Region.md): This module defines functions working with MLIR Region.

  - [Beaver.MLIR.Rewrite](Beaver.MLIR.Rewrite.md): This module defines functions working with MLIR rewrite patterns and pattern sets.

  - [Beaver.MLIR.RewritePattern](Beaver.MLIR.RewritePattern.md): This module defines functions working with MLIR Rewrite Patterns.

  - [Beaver.MLIR.RewritePatternSet](Beaver.MLIR.RewritePatternSet.md): This module defines functions working with MLIR RewritePatternSet.

  - [Beaver.MLIR.RewriterBase](Beaver.MLIR.RewriterBase.md): This module defines functions working with MLIR RewriterBase.

  - [Beaver.MLIR.RewriterBaseInsertPoint](Beaver.MLIR.RewriterBaseInsertPoint.md)
  - [Beaver.MLIR.ShapedType](Beaver.MLIR.ShapedType.md): This module provides utilities for MLIR shaped types.

  - [Beaver.MLIR.ShapedTypeComponentsCallback](Beaver.MLIR.ShapedTypeComponentsCallback.md)
  - [Beaver.MLIR.SideEffectResource](Beaver.MLIR.SideEffectResource.md)
  - [Beaver.MLIR.SparseTensorLevelType](Beaver.MLIR.SparseTensorLevelType.md)
  - [Beaver.MLIR.StringCallback](Beaver.MLIR.StringCallback.md)
  - [Beaver.MLIR.StringRef](Beaver.MLIR.StringRef.md): This module defines functions working with MLIR StringRef.
  - [Beaver.MLIR.SymbolTable](Beaver.MLIR.SymbolTable.md): This module provides utilities for MLIR symbol table.

  - [Beaver.MLIR.ThreadPool](Beaver.MLIR.ThreadPool.md): Owns an LLVM thread pool that can be shared by multiple MLIR contexts.
  - [Beaver.MLIR.Transform](Beaver.MLIR.Transform.md): Transform dialect execution and transformations MLIR provides by default.
  - [Beaver.MLIR.Transform.Error](Beaver.MLIR.Transform.Error.md): A structured Transform dialect parsing, resolution, or execution failure.
  - [Beaver.MLIR.Transform.Resolver](Beaver.MLIR.Transform.Resolver.md): Behaviour for resolving Transform Tune choices.
  - [Beaver.MLIR.Transform.Result](Beaver.MLIR.Transform.Result.md): The result of successfully applying a named transform sequence.
  - [Beaver.MLIR.Transform.Schedule](Beaver.MLIR.Transform.Schedule.md): Deterministic discovery and resolution of Transform Tune schedules.
  - [Beaver.MLIR.Transform.Schedule.Analysis](Beaver.MLIR.Transform.Schedule.Analysis.md): Serializable discovery result for one named sequence.
  - [Beaver.MLIR.Transform.Schedule.Choice](Beaver.MLIR.Transform.Schedule.Choice.md): A discovered `transform.tune.knob` or alternatives operation.
  - [Beaver.MLIR.Transform.Schedule.Constraint](Beaver.MLIR.Transform.Schedule.Constraint.md): An exported `transform.smt.constrain_params` operation.
  - [Beaver.MLIR.Transform.Schedule.DSL](Beaver.MLIR.Transform.Schedule.DSL.md): An Elixir authoring frontend for upstream Transform dialect schedules.
  - [Beaver.MLIR.Transform.Schedule.Option](Beaver.MLIR.Transform.Schedule.Option.md): One enumerable option of a Tune choice.
  - [Beaver.MLIR.Transform.Schedule.Resolved](Beaver.MLIR.Transform.Schedule.Resolved.md): An immutable, cache-addressable, replayable Transform schedule.
  - [Beaver.MLIR.Transform.Solver](Beaver.MLIR.Transform.Solver.md): Optional adapter for inspecting or validating `transform.smt.constrain_params`.
  - [Beaver.MLIR.Transform.Tuner](Beaver.MLIR.Transform.Tuner.md): Bounded, deterministic BEAM evaluation of resolved Transform schedules.
  - [Beaver.MLIR.Transform.Tuner.Cancellation](Beaver.MLIR.Transform.Tuner.Cancellation.md): An explicit, process-independent cancellation token.
  - [Beaver.MLIR.Transform.Tuner.Candidate](Beaver.MLIR.Transform.Tuner.Candidate.md): A deterministic candidate evaluation record.
  - [Beaver.MLIR.Transform.Tuner.Evaluator](Beaver.MLIR.Transform.Tuner.Evaluator.md): Optional behaviour for schedule benchmark/evaluation adapters.
  - [Beaver.MLIR.Transform.Tuner.Result](Beaver.MLIR.Transform.Tuner.Result.md): Ordered records and runtime configuration from one tuning search.
  - [Beaver.MLIR.TransformOpInterface](Beaver.MLIR.TransformOpInterface.md): Implements MLIR's `TransformOpInterface` for dynamic operations.
  - [Beaver.MLIR.TransformOpInterfaceCallbacks](Beaver.MLIR.TransformOpInterfaceCallbacks.md)
  - [Beaver.MLIR.TransformOptions](Beaver.MLIR.TransformOptions.md)
  - [Beaver.MLIR.TransformResults](Beaver.MLIR.TransformResults.md)
  - [Beaver.MLIR.TransformRewriter](Beaver.MLIR.TransformRewriter.md)
  - [Beaver.MLIR.TransformState](Beaver.MLIR.TransformState.md)
  - [Beaver.MLIR.Type](Beaver.MLIR.Type.md): This module provides functions to work with MLIR's type system, allowing creation of MLIR type.
  - [Beaver.MLIR.TypeConverter](Beaver.MLIR.TypeConverter.md): An owning MLIR type converter whose Elixir callbacks are safe across native
worker threads, process termination, and NIF upgrades.
  - [Beaver.MLIR.TypeConverter.Callback](Beaver.MLIR.TypeConverter.Callback.md): Compatibility facade for a `Beaver.MLIR.TypeConverter` with one 1:1
conversion callback. New code can use `Beaver.MLIR.TypeConverter` directly.

  - [Beaver.MLIR.TypeConverter1ToNConversionCallback](Beaver.MLIR.TypeConverter1ToNConversionCallback.md)
  - [Beaver.MLIR.TypeConverter1ToNTargetMaterializationCallback](Beaver.MLIR.TypeConverter1ToNTargetMaterializationCallback.md)
  - [Beaver.MLIR.TypeConverterConversionResults](Beaver.MLIR.TypeConverterConversionResults.md)
  - [Beaver.MLIR.TypeConverterSourceMaterializationCallback](Beaver.MLIR.TypeConverterSourceMaterializationCallback.md)
  - [Beaver.MLIR.TypeConverterTargetMaterializationCallback](Beaver.MLIR.TypeConverterTargetMaterializationCallback.md)
  - [Beaver.MLIR.TypeID](Beaver.MLIR.TypeID.md)
  - [Beaver.MLIR.TypeIDAllocator](Beaver.MLIR.TypeIDAllocator.md)
  - [Beaver.MLIR.TypesCallback](Beaver.MLIR.TypesCallback.md)
  - [Beaver.MLIR.UnrankedMemRefDescriptor](Beaver.MLIR.UnrankedMemRefDescriptor.md): This module defines functions working with MLIR UnrankedMemRefDescriptor runtime ABI.
  - [Beaver.MLIR.Value](Beaver.MLIR.Value.md): This module handles MLIR values, which represent SSA (Static Single Assignment) values in the IR.
  - [Beaver.MLIR.WalkOrder](Beaver.MLIR.WalkOrder.md)

- Dialect
  - [Beaver.MLIR.Dialect](Beaver.MLIR.Dialect.md): This module defines macro to generate code for an MLIR dialect.
You might override `eval_ssa/1` function to introduce your custom op generation

  - [Beaver.MLIR.Dialect.ACC](Beaver.MLIR.Dialect.ACC.md)
  - [Beaver.MLIR.Dialect.AMDGPU](Beaver.MLIR.Dialect.AMDGPU.md)
  - [Beaver.MLIR.Dialect.Affine](Beaver.MLIR.Dialect.Affine.md)
  - [Beaver.MLIR.Dialect.Arith](Beaver.MLIR.Dialect.Arith.md): This module defines functions for Ops in Arith dialect.

  - [Beaver.MLIR.Dialect.ArmNeon](Beaver.MLIR.Dialect.ArmNeon.md)
  - [Beaver.MLIR.Dialect.ArmSME](Beaver.MLIR.Dialect.ArmSME.md)
  - [Beaver.MLIR.Dialect.ArmSVE](Beaver.MLIR.Dialect.ArmSVE.md)
  - [Beaver.MLIR.Dialect.Async](Beaver.MLIR.Dialect.Async.md)
  - [Beaver.MLIR.Dialect.Bufferization](Beaver.MLIR.Dialect.Bufferization.md)
  - [Beaver.MLIR.Dialect.Builtin](Beaver.MLIR.Dialect.Builtin.md): This module defines functions for Ops in Builtin dialect.

  - [Beaver.MLIR.Dialect.CF](Beaver.MLIR.Dialect.CF.md): This module defines functions for Ops in CF dialect.

  - [Beaver.MLIR.Dialect.Complex](Beaver.MLIR.Dialect.Complex.md)
  - [Beaver.MLIR.Dialect.DLTI](Beaver.MLIR.Dialect.DLTI.md)
  - [Beaver.MLIR.Dialect.EmitC](Beaver.MLIR.Dialect.EmitC.md)
  - [Beaver.MLIR.Dialect.Ex](Beaver.MLIR.Dialect.Ex.md): The `ex` dialect: a scalar subset of Elixir AST defined in Slang.
  - [Beaver.MLIR.Dialect.Ex.MaterializeBoundVariables](Beaver.MLIR.Dialect.Ex.MaterializeBoundVariables.md): Erases `ex.var`/`ex.bind` pairs into SSA before dialect conversion.
  - [Beaver.MLIR.Dialect.Func](Beaver.MLIR.Dialect.Func.md): This module defines functions for Ops in Func dialect.

  - [Beaver.MLIR.Dialect.GPU](Beaver.MLIR.Dialect.GPU.md): This module defines functions for Ops in GPU dialect.

  - [Beaver.MLIR.Dialect.IRDL](Beaver.MLIR.Dialect.IRDL.md)
  - [Beaver.MLIR.Dialect.Index](Beaver.MLIR.Dialect.Index.md)
  - [Beaver.MLIR.Dialect.LLVM](Beaver.MLIR.Dialect.LLVM.md)
  - [Beaver.MLIR.Dialect.Linalg](Beaver.MLIR.Dialect.Linalg.md)
  - [Beaver.MLIR.Dialect.MLProgram](Beaver.MLIR.Dialect.MLProgram.md)
  - [Beaver.MLIR.Dialect.MPI](Beaver.MLIR.Dialect.MPI.md)
  - [Beaver.MLIR.Dialect.Math](Beaver.MLIR.Dialect.Math.md)
  - [Beaver.MLIR.Dialect.MemRef](Beaver.MLIR.Dialect.MemRef.md): This module defines functions for Ops in MemRef dialect.

  - [Beaver.MLIR.Dialect.NVGPU](Beaver.MLIR.Dialect.NVGPU.md)
  - [Beaver.MLIR.Dialect.NVVM](Beaver.MLIR.Dialect.NVVM.md)
  - [Beaver.MLIR.Dialect.OMP](Beaver.MLIR.Dialect.OMP.md)
  - [Beaver.MLIR.Dialect.PDL](Beaver.MLIR.Dialect.PDL.md)
  - [Beaver.MLIR.Dialect.PDLInterp](Beaver.MLIR.Dialect.PDLInterp.md)
  - [Beaver.MLIR.Dialect.Ptr](Beaver.MLIR.Dialect.Ptr.md): Operations and construction helpers for MLIR's upstream Ptr dialect.
  - [Beaver.MLIR.Dialect.Quant](Beaver.MLIR.Dialect.Quant.md)
  - [Beaver.MLIR.Dialect.ROCDL](Beaver.MLIR.Dialect.ROCDL.md)
  - [Beaver.MLIR.Dialect.Registry](Beaver.MLIR.Dialect.Registry.md): This module defines functions to query MLIR dialect registry.

  - [Beaver.MLIR.Dialect.SCF](Beaver.MLIR.Dialect.SCF.md)
  - [Beaver.MLIR.Dialect.SMT](Beaver.MLIR.Dialect.SMT.md)
  - [Beaver.MLIR.Dialect.SPIRV](Beaver.MLIR.Dialect.SPIRV.md)
  - [Beaver.MLIR.Dialect.Shape](Beaver.MLIR.Dialect.Shape.md)
  - [Beaver.MLIR.Dialect.Shard](Beaver.MLIR.Dialect.Shard.md)
  - [Beaver.MLIR.Dialect.SparseTensor](Beaver.MLIR.Dialect.SparseTensor.md)
  - [Beaver.MLIR.Dialect.TOSA](Beaver.MLIR.Dialect.TOSA.md)
  - [Beaver.MLIR.Dialect.Tensor](Beaver.MLIR.Dialect.Tensor.md): This module defines functions for Ops in Tensor dialect.

  - [Beaver.MLIR.Dialect.Transform](Beaver.MLIR.Dialect.Transform.md)
  - [Beaver.MLIR.Dialect.UB](Beaver.MLIR.Dialect.UB.md)
  - [Beaver.MLIR.Dialect.Vector](Beaver.MLIR.Dialect.Vector.md)
  - [Beaver.MLIR.Dialect.WasmSSA](Beaver.MLIR.Dialect.WasmSSA.md)
  - [Beaver.MLIR.Dialect.X86](Beaver.MLIR.Dialect.X86.md)
  - [Beaver.MLIR.Dialect.XeGPU](Beaver.MLIR.Dialect.XeGPU.md)
  - [Beaver.MLIR.Dialect.XeVM](Beaver.MLIR.Dialect.XeVM.md)
  - [Beaver.MLIR.DialectHandle](Beaver.MLIR.DialectHandle.md)
  - [Beaver.MLIR.DialectRegistry](Beaver.MLIR.DialectRegistry.md)

- Native
  - [Beaver.Native](Beaver.Native.md): This module provide higher level interface to primitive data types and MemRefDescriptor C struct in [MemRef](https://mlir.llvm.org/docs/Dialects/MemRef/) dialect.
It aims to manage memory with BEAM and help a Erlang/Elixir function play well with function generated by MLIR and other NIFs.

  - [Beaver.Native.Array](Beaver.Native.Array.md): This module defines functions working with C array.

  - [Beaver.Native.Bool](Beaver.Native.Bool.md)
  - [Beaver.Native.CInt](Beaver.Native.CInt.md)
  - [Beaver.Native.CUInt](Beaver.Native.CUInt.md)
  - [Beaver.Native.F32](Beaver.Native.F32.md)
  - [Beaver.Native.F64](Beaver.Native.F64.md)
  - [Beaver.Native.I16](Beaver.Native.I16.md)
  - [Beaver.Native.I32](Beaver.Native.I32.md)
  - [Beaver.Native.I64](Beaver.Native.I64.md)
  - [Beaver.Native.I8](Beaver.Native.I8.md)
  - [Beaver.Native.ISize](Beaver.Native.ISize.md)
  - [Beaver.Native.OpaqueArray](Beaver.Native.OpaqueArray.md)
  - [Beaver.Native.OpaquePtr](Beaver.Native.OpaquePtr.md): This module defines functions working with opaque pointer, usually a `void*` in C.

  - [Beaver.Native.Ptr](Beaver.Native.Ptr.md): This module defines functions working with pointer in C.

  - [Beaver.Native.U16](Beaver.Native.U16.md)
  - [Beaver.Native.U32](Beaver.Native.U32.md)
  - [Beaver.Native.U64](Beaver.Native.U64.md)
  - [Beaver.Native.U8](Beaver.Native.U8.md)
  - [Beaver.Native.USize](Beaver.Native.USize.md)

