Support double colon in function/proc/block name in IR to support name spacing.
Open
ir
- Dominant language
- C++
- Stars
- 1.9k
- Forks
- 283
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 135
Description
A DSL proc named `bar` in a module foo produces an IR proc named `__foo__bar_0_next`. To help clean up readability and referring to the IR proc without name mangling (like in build rules), double colon should be supported in the IR for top-level identifiers. IR would look like:
```
proc foo::bar(__token: token, __state: (), init={()}) {
...
```
Also eliminating the `_0_next` suffix of the proc name would be good.
When lowering to verilog, these colons could be legalized by substituting colons with underscores or something, though typically a module name is specified explicitly in codegen so this is not an issue.
Contributor guide
Assessment
This issue has not been assessed yet.