Named sends and receives for IOConstraints
- Dominant language
- C++
- Stars
- 1.9k
- Forks
- 283
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 135
Description
Codegen supports scheduling constraints between (channel_name, send/recv) pairs. If there is only one send or receive to a channel (which is currently a requirement for codegen), this makes sense. However, for II>1, you could have multiple sends and receives to the same channel and want to independently constraint them. There should be a mechanism to name send/recvs (or tokens?) and introduce scheduling constraints between the named entities.
Example: a proc is talking to a memory with `request`, `read_response`, and `write_completion` channels. You want to have a constraint between a write request and write completion, and a separate constraint between a read request and read response, but both requests happen on the same channel so you end up overconstrained (and, if the requests aren't mutually exclusive, potentially infeasible).
Contributor guide
Assessment
This issue has not been assessed yet.