[MLIR][IRDL][irdl-to-cpp] add support for `irdl.is`
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
In working on https://github.com/llvm/llvm-project/issues/158034, I came across an issue that `irdl.is`, which is used to constrain region block arguments, is not supported in `irdl-to-cpp`
```
error: IRDL C++ translation does not yet support translation of irdl.is operation
%v0 = irdl.is i1
^
tmp/test.irdl:8:13: note: see current operation: %2 = "irdl.is"() <{expected = i1}> : () -> !irdl.attribute
```
Contributor guide
Research direction
Start by running the issue's tmp/test.irdl reproducer through irdl-to-cpp and trace where translation of irdl.is is rejected. Support the shown constraint on region block arguments, then rerun the reproducer and confirm the translation no longer emits the reported error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100