[debug] Inline enum variants into debug var/subfield intrinsics#5420
[debug] Inline enum variants into debug var/subfield intrinsics#5420fkhaidari wants to merge 2 commits into
Conversation
15c2212 to
09cab64
Compare
|
Hi @jackkoenig! I’ve reworked the debug intrinsic design to cut down on the translation complexity on the CIRCT side. The separate The matching CIRCT change reads the variants straight off the var/subfield and materializes the dbg.enum at the use site. I’ll push that side once this lands so the two stay in sync. Could you take a look? |
09cab64 to
9fd285f
Compare
|
While I’m here, I’d like your take on one thing For a bidirectional or aggregate signal, The reason it can’t just take the signal as an operand is that |
9fd285f to
774bf0a
Compare
Drop the separate circt_debug_enumdef intrinsic. A ChiselEnum-typed circt_debug_var/circt_debug_subfield now carries its variants (JSON) and bit width inline alongside enumTypeName/enumFqn, so every enum use site is self-contained and no per-circuit dedup is needed. This removes an outlier intrinsic and matches the CIRCT side, which resolves enum metadata from the var/subfield itself rather than a staged enumdef table. Signed-off-by: fkhaidari <khaidari.fg@gmail.com>
774bf0a to
b52be31
Compare
|
@jackkoenig, could you take a look? |
jackkoenig
left a comment
There was a problem hiding this comment.
Without being an expert on the CIRCT representation, this makes sense to me and sounds a lot better.
Summary
Drop the separate
circt_debug_enumdefintrinsic. A ChiselEnum-typedcirct_debug_var/circt_debug_subfieldnow carries its variants (JSON) and bit width inline alongsideenumTypeName/enumFqn, so every enum use site is self-contained and no per-circuit dedup is needed. This removes an outlier intrinsic and matches the CIRCT side, which resolves enum metadata from the var/subfield itself rather than a stagedenumdeftable.Type of Improvement
Interal
Desired Merge Strategy
Rebase: You will rebase the PR onto master and it will be merged with a merge commit.
Release Notes
Drop the separate
circt_debug_enumdefintrinsic. A ChiselEnum-typedcirct_debug_var/circt_debug_subfieldnow carries its variants (JSON) and bit width inline alongsideenumTypeName/enumFqn