-
Notifications
You must be signed in to change notification settings - Fork 602
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Vec literals of empty Vecs #4070
Conversation
Also tweak Vec.Lit code to use cloneAsSuperType rather than implementing its own version of the same concept.
@@ -489,7 +489,6 @@ sealed class Vec[T <: Data] private[chisel3] (gen: => T, val length: Int) extend | |||
s"are less than zero or greater or equal to than Vec length" | |||
) | |||
} | |||
cloneSupertype(elementInitializers.map(_._2), s"Vec.Lit(...)") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was being used as a check, but it is what was blocking size-0 from working in the Vec(0, ...).Lit
use case. Rather, that check is only needed when using the Vec.Lit(...)
API (since no element type is given) so I basically moved this check there but also went ahead and used it to figure out the resulting Vec
type.
"Empty bundle literals" should "be supported" in { | ||
val chirrtl = ChiselStage.emitCHIRRTL(new RawModule { | ||
val lit = (new Bundle {}).Lit() | ||
lit.litOption should equal(Some(0)) | ||
}) | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also added this test, but it already worked correctly.
Also tweak Vec.Lit code to use cloneAsSuperType rather than implementing its own version of the same concept. (cherry picked from commit 86082b1) # Conflicts: # src/test/scala/chiselTests/BundleLiteralSpec.scala # src/test/scala/chiselTests/VecLiteralSpec.scala
Also tweak Vec.Lit code to use cloneAsSuperType rather than implementing its own version of the same concept. (cherry picked from commit 86082b1)
* Add support for Vec literals of empty Vecs (#4070) Also tweak Vec.Lit code to use cloneAsSuperType rather than implementing its own version of the same concept. (cherry picked from commit 86082b1) # Conflicts: # src/test/scala/chiselTests/BundleLiteralSpec.scala # src/test/scala/chiselTests/VecLiteralSpec.scala * Resolve backport conflicts --------- Co-authored-by: Jack Koenig <koenig@sifive.com>
Also tweak Vec.Lit code to use cloneAsSuperType rather than implementing its own version of the same concept.
Contributor Checklist
docs/src
?Type of Improvement
Desired Merge Strategy
Release Notes
Reviewer Checklist (only modified by reviewer)
3.6.x
,5.x
, or6.x
depending on impact, API modification or big change:7.0
)?Enable auto-merge (squash)
, clean up the commit message, and label withPlease Merge
.Create a merge commit
.