chisel icon indicating copy to clipboard operation
chisel copied to clipboard

Add OpaqueType support to Records

Open adkian-sifive opened this issue 3 years ago • 0 comments

OpaqueType allows simplifying Record references when the Record subtypes have single map elements

Contributor Checklist

  • [ ] Did you add Scaladoc to every public function/method?
  • [x] Did you add at least one test demonstrating the PR?
  • [x] Did you delete any extraneous printlns/debugging code?
  • [x] Did you specify the type of improvement?
  • [ ] Did you add appropriate documentation in docs/src?
  • [x] Did you state the API impact?
  • [x] Did you specify the code generation impact?
  • [x] Did you request a desired merge strategy?
  • [x] Did you add text to be included in the Release Notes for this change?

Type of Improvement

  • new feature/API

API Impact

New override for Records for single element types

Backend Code Generation Impact

If Record.opaqueType is overridden to true, the generated CHIRRTL will substitute name of the Record for that of the subfield, and substitute type of the subfield for type of the Record

Desired Merge Strategy

  • Squash: The PR will be squashed and merged (choose this if you have no preference.

Release Notes

Add new override in Record to support opaque types

Reviewer Checklist (only modified by reviewer)

  • [ ] Did you add the appropriate labels?
  • [ ] Did you mark the proper milestone (Bug fix: 3.4.x, [small] API extension: 3.5.x, API modification or big change: 3.6.0)?
  • [ ] Did you review?
  • [ ] Did you check whether all relevant Contributor checkboxes have been checked?
  • [ ] Did you do one of the following when ready to merge:
    • [ ] Squash: You/ the contributor Enable auto-merge (squash), clean up the commit message, and label with Please Merge.
    • [ ] Merge: Ensure that contributor has cleaned up their commit history, then merge with Create a merge commit.

adkian-sifive avatar Aug 05 '22 19:08 adkian-sifive