[Handshake] Remove handshake.select #5045
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I introduced
handshake.select
back in the day to distinguish it fromhandshake.mux
. What i somehow failed to realize is thathandshake.select
has always lowered to a unit-rate actor, which completely removes the need for the operation. The fix all along seems to just lower it to a comb/firrtl mux with unit rate semantics.Furthermore, looks like there was a bug in the lowerings, wherein the operands of
arith.select
in standard to handshake was being swapped (hence the change in max.mlir, which was actually incorrect before).Handshake to FIRRTL is... eghh... could have done a "nicer" implementation which factors out the join logic, but i can't be bothered - this pass is supposed to be deprecated, anyways, and i can't wait for the day when it is removed.