Skip to content
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 --dump-fir option to ChiselStage #3453

Merged
merged 1 commit into from Aug 3, 2023

Conversation

jackkoenig
Copy link
Contributor

As usual, a 20 min hack had a bit of scope creep but I think this is a nice improvement

I'm open to a better name for the argument, but I think the functionality is pretty handy

@fabianschuiki FYI

Contributor Checklist

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

Type of Improvement

  • Feature (or new API)

Desired Merge Strategy

  • Rebase

Release Notes

This option will dump the .fir before invoking firtool.

  • Additional changes:
    • Use os.lib for invoking firtool
    • Use lazy serialization to avoid holding the entire FIRRTL in memory.
    • Mix NoStackTrace into FirtoolNotFound
    • Fix detection of no firtool

Reviewer Checklist (only modified by reviewer)

  • Did you add the appropriate labels? (Select the most appropriate one based on the "Type of Improvement")
  • Did you mark the proper milestone (Bug fix: 3.5.x, 3.6.x, or 5.x depending on impact, API modification or big change: 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.

@jackkoenig jackkoenig added the Feature New feature, will be included in release notes label Aug 3, 2023
@jackkoenig jackkoenig added this to the 3.6.x milestone Aug 3, 2023
src/main/scala/circt/stage/Annotations.scala Outdated Show resolved Hide resolved
src/main/scala/circt/stage/phases/CIRCT.scala Outdated Show resolved Hide resolved

info("The exception should not contain a stack trace")
exception.getStackTrace should be(Array())
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice addition.

@jackkoenig jackkoenig force-pushed the jackkoenig/chiselstage-dump-fir branch from 7123fcc to f03d097 Compare August 3, 2023 15:44
This option will dump the .fir before invoking firtool.

Additional changes:
* Use os.lib for invoking firtool
* Use lazy serialization to avoid holding the entire FIRRTL in
  memory.
* Mix NoStackTrace into FirtoolNotFound
* Fix detection of no firtool
@jackkoenig jackkoenig force-pushed the jackkoenig/chiselstage-dump-fir branch from f03d097 to 131a702 Compare August 3, 2023 16:50
@jackkoenig jackkoenig enabled auto-merge (squash) August 3, 2023 16:56
@jackkoenig jackkoenig merged commit 4db86b2 into main Aug 3, 2023
13 checks passed
@jackkoenig jackkoenig deleted the jackkoenig/chiselstage-dump-fir branch August 3, 2023 17:16
@mergify mergify bot added the Backported This PR has been backported label Aug 3, 2023
mergify bot pushed a commit that referenced this pull request Aug 3, 2023
This option will dump the .fir before invoking firtool.

Additional changes:
* Use os.lib for invoking firtool
* Use lazy serialization to avoid holding the entire FIRRTL in
  memory.
* Mix NoStackTrace into FirtoolNotFound
* Fix detection of no firtool

(cherry picked from commit 4db86b2)

# Conflicts:
#	src/main/scala/circt/stage/CIRCTOptions.scala
#	src/main/scala/circt/stage/ChiselStage.scala
#	src/main/scala/circt/stage/phases/CIRCT.scala
mergify bot pushed a commit that referenced this pull request Aug 3, 2023
This option will dump the .fir before invoking firtool.

Additional changes:
* Use os.lib for invoking firtool
* Use lazy serialization to avoid holding the entire FIRRTL in
  memory.
* Mix NoStackTrace into FirtoolNotFound
* Fix detection of no firtool

(cherry picked from commit 4db86b2)

# Conflicts:
#	src/main/scala/circt/stage/CIRCTOptions.scala
#	src/main/scala/circt/stage/ChiselStage.scala
#	src/main/scala/circt/stage/phases/CIRCT.scala
jackkoenig added a commit that referenced this pull request Nov 16, 2023
This option will dump the .fir before invoking firtool.

Additional changes:
* Use os.lib for invoking firtool
* Use lazy serialization to avoid holding the entire FIRRTL in
  memory.
* Mix NoStackTrace into FirtoolNotFound
* Fix detection of no firtool

(cherry picked from commit 4db86b2)

# Conflicts:
#	src/main/scala/circt/stage/CIRCTOptions.scala
#	src/main/scala/circt/stage/ChiselStage.scala
#	src/main/scala/circt/stage/phases/CIRCT.scala
mergify bot added a commit that referenced this pull request Nov 16, 2023
* Add --dump-fir option to ChiselStage (#3453)

This option will dump the .fir before invoking firtool.

Additional changes:
* Use os.lib for invoking firtool
* Use lazy serialization to avoid holding the entire FIRRTL in
  memory.
* Mix NoStackTrace into FirtoolNotFound
* Fix detection of no firtool

(cherry picked from commit 4db86b2)

# Conflicts:
#	src/main/scala/circt/stage/CIRCTOptions.scala
#	src/main/scala/circt/stage/ChiselStage.scala
#	src/main/scala/circt/stage/phases/CIRCT.scala

* Resolve backport conflicts

---------

Co-authored-by: Jack Koenig <koenig@sifive.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Backported This PR has been backported Feature New feature, will be included in release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants