docs.rs failed to build melior-0.3.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Melior
The rustic MLIR bindings for Rust
This crate is a wrapper of the MLIR C API.
use ;
let registry = new;
register_all_dialects;
let context = new;
context.append_dialect_registry;
context.get_or_load_dialect;
let location = unknown;
let module = new;
let integer_type = integer;
let function = ;
module.body.append_operation;
assert!;
Goals
Melior aims to provide a simple, safe, and complete API for MLIR with a reasonably sane ownership model represented by the type system in Rust.
Install
Dependencies
LLVM/MLIR 15 needs to be installed on your system. On Linux and macOS, you can install it via Homebrew.
Documentation
On GitHub Pages.
Contribution
Contribution is welcome! But, Melior is still in the alpha stage as well as the MLIR C API. Note that the API is unstable and can have breaking changes in the future.
Technical notes
- We always use
&T
for MLIR objects instead of&mut T
to mitigate the intricacy of representing a loose ownership model of the MLIR C API in Rust. - Only UTF-8 is supported as string encoding.
- Most string conversion between Rust and C is cached internally.
Naming conventions
Mlir<X>
objects are named<X>
if they have no destructor. Otherwise, they are named<X>
for owned objects and<X>Ref
for borrowed references.mlir<X>Create
functions are renamed as<X>::new
.mlir<X>Get<Y>
functions are renamed as follows:- If the resulting objects refer to
&self
, they are named<X>::as_<Y>
. - Otherwise, they are named just
<X>::<Y>
and may have arguments, such as position indices.
- If the resulting objects refer to
References
- The raw C binding generation depends on femtomc/mlir-sys.
- The overall design is inspired by TheDan64/inkwell.