Skip to content

Commit

Permalink
Run ConvertToExtMod before DedupModules
Browse files Browse the repository at this point in the history
Normally, `DedupModules` spends a lot of time working on modules that
this pass removes. Having this run before `DedupModules` significantly
speeds up FIRRTL compile time for the Harness block in Chipyard.

Resolves ucb-bar#119
  • Loading branch information
Tynan McAuley committed Feb 26, 2022
1 parent 064c8be commit 97dcec4
Showing 1 changed file with 3 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import firrtl.options.Dependency
import firrtl.passes.memlib.ReplSeqMem
import firrtl.stage.Forms
import firrtl.stage.TransformManager.TransformDependency
import firrtl.transforms.DedupModules

case class ConvertToExtModAnnotation(target: ModuleTarget) extends SingleTargetAnnotation[ModuleTarget] {
def duplicate(n: ModuleTarget) = this.copy(n)
Expand All @@ -19,10 +20,10 @@ case class ConvertToExtModAnnotation(target: ModuleTarget) extends SingleTargetA
// otherwise it's left alone.
class ConvertToExtMod extends Transform with DependencyAPIMigration {

override def prerequisites: Seq[TransformDependency] = Forms.HighForm
override def prerequisites: Seq[TransformDependency] = Seq.empty
override def optionalPrerequisites: Seq[TransformDependency] = Seq.empty
override def optionalPrerequisiteOf: Seq[TransformDependency] = {
Forms.HighEmitters ++ Seq(Dependency[RemoveUnusedModules], Dependency[ReplSeqMem])
Forms.HighEmitters ++ Seq(Dependency[RemoveUnusedModules], Dependency[ReplSeqMem], Dependency[DedupModules])
}
override def invalidates(a: Transform): Boolean = false

Expand Down

0 comments on commit 97dcec4

Please sign in to comment.