raviqqe / melior

The rustic MLIR bindings in Rust
https://raviqqe.github.io/melior/melior/
Apache License 2.0
326 stars 40 forks source link

IRDL support for custom dialect definition #540

Open Moxinilian opened 6 months ago

Moxinilian commented 6 months ago

I am currently adding IRDL support for custom dialect definition to the C API, and once this has landed I'd like to add it to melior as well. Ideally a macro to generate useful Rust types from IRDL definitions would be really nice, but simply allowing to register custom dialects specified in IRDL would already be sufficient.

Moxinilian commented 6 months ago

As an update: I have managed to make this work on my fork of melior that uses LLVM 19. I assume there is no interest in LLVM 19-only features for now, so once LLVM 19 is released and supported in melior, I'll be able to submit a PR.

TyrsDev commented 2 months ago

This sounds excellent, @Moxinilian. I'm hoping for custom dialect support in melior soon. Do you have any resources or documentation available where I could see how this would be used in melior?

Moxinilian commented 2 months ago

Yes, basically it's just a matter of exposing mlirLoadIRDLDialects, which takes a ModuleOp and loads any IRDL dialect defined in it.

ProfFan commented 2 months ago

LLVM 19.1.0 is out, https://github.com/llvm/llvm-project/releases/tag/llvmorg-19.1.0