google / google/xls

Inter-proc channel operations where data is ignored

Open
#1,928 0 comments 0 reactions 0 assignees View on GitHub
codegen optimizer stitching 🧦 sox
Dominant language
C++
Stars
1.9k
Forks
283
Avg merge
2d 10h
Merged PRs (30d)
135

Description

Consider the situation where a receive is performed and the data is ignored- one scenario where this could happen is a top proc with an array of channels where it receives from each of `N` identical child procs and for whatever reason the top proc drops the data on the floor for half of the children.

Currently, this results in a few different not-great things:
1) we don't narrow the channels where data is ignored (they could be zero-width)
2) we don't DCE the unread ports[^1]
3) we don't waive the unread ports

[^1]: is it a good thing to DCE ports? It might be useful to keep them around to facilitate testing internal blocks, but I don't think we have a strong contract wrt what internal blocks look like.

This problem is currently manifesting for me as unread ports (3), but ideally we'd also have (1) and/or (2) to obviate the need for waivers.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.