[FIRRTL] Allow Layer Inlining in Enabled Layers
Open
@rwy7 is already working on this.
Since Feb 22, 2024.
FIRRTL
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 524
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
For situations where a module has a layer enabled, inline a layerblock with a compatible layer. Consider the following basic example:
firrtl.circuit "Foo" {
firrtl.layer @A bind {}
firrtl.module @Foo() attributes {layers=[@A]} {
firrtl.layerblock @A {
%a = firrtl.wire : !firrtl.uint<1>
}
}
}
This can be converted to:
firrtl.circuit "Foo" {
firrtl.layer @A bind {}
firrtl.module @Foo() attributes {layers=[@A]} {
%a = firrtl.wire : !firrtl.uint<1>
}
}
This cannot likely be done with a canonicalizer and needs a pass. However, there may be MLIR infra that can be reused here as the inlining is very simple.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.