-
Notifications
You must be signed in to change notification settings - Fork 647
Open
Milestone
Description
Type of issue: bug report
Impact: unknown
Development Phase: request
Other information
If a module mixed with experimental.InlineInstance (introduced in #838) is used as top module, FIRRTL (I guess the DCE transform) breaks. It's desirable to be able to use InlineInstance as regular non-inlined top module during unit testing.
This could actually be a FIRRTL bug, but I guess chisel can as well skip adding InlineAnnotation for a top-level module.
If the current behavior is a bug, please provide the steps to reproduce the problem:
Top level module mixed in with InlineAnnotation -> FIRRTL =>
[error] (run-main-4) firrtl.FirrtlInternalException: Internal Error! Please file an issue at https://github.com/ucb-bar/firrtl/issues
[error] firrtl.FirrtlInternalException: Internal Error! Please file an issue at https://github.com/ucb-bar/firrtl/issues
[error] at firrtl.Utils$.error(Utils.scala:491)
[error] at firrtl.Utils$.throwInternalError(Utils.scala:164)
[error] at firrtl.stage.phases.CatchExceptions.transform(CatchExceptions.scala:38)
[error] at firrtl.stage.phases.CatchExceptions.transform(CatchExceptions.scala:17)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:38)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:15)
[error] at firrtl.options.Translator.transform(Phase.scala:248)
[error] at firrtl.options.Translator.transform$(Phase.scala:248)
[error] at firrtl.options.phases.DeletedWrapper.transform(DeletedWrapper.scala:15)
[error] at firrtl.options.DependencyManager.$anonfun$transform$3(DependencyManager.scala:278)
[error] at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
[error] at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
[error] at scala.collection.immutable.List.foldLeft(List.scala:79)
[error] at firrtl.options.DependencyManager.transform(DependencyManager.scala:269)
[error] at firrtl.options.DependencyManager.transform$(DependencyManager.scala:255)
[error] at firrtl.options.PhaseManager.transform(DependencyManager.scala:436)
[error] at firrtl.stage.FirrtlStage.run(FirrtlStage.scala:38)
[error] at firrtl.options.Stage$$anon$1.transform(Stage.scala:43)
[error] at firrtl.options.Stage$$anon$1.transform(Stage.scala:43)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:38)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:15)
[error] at firrtl.options.Translator.transform(Phase.scala:248)
[error] at firrtl.options.Translator.transform$(Phase.scala:248)
[error] at firrtl.options.phases.DeletedWrapper.transform(DeletedWrapper.scala:15)
[error] at firrtl.options.Stage.$anonfun$transform$5(Stage.scala:47)
[error] at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
[error] at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
[error] at scala.collection.immutable.List.foldLeft(List.scala:79)
[error] at firrtl.options.Stage.$anonfun$transform$3(Stage.scala:47)
[error] at logger.Logger$.$anonfun$makeScope$2(Logger.scala:166)
[error] at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
[error] at logger.Logger$.makeScope(Logger.scala:164)
[error] at firrtl.options.Stage.transform(Stage.scala:47)
[error] at chisel3.stage.phases.MaybeFirrtlStage.$anonfun$transform$2(MaybeFirrtlStage.scala:22)
[error] at scala.Option.getOrElse(Option.scala:201)
[error] at chisel3.stage.phases.MaybeFirrtlStage.transform(MaybeFirrtlStage.scala:22)
[error] at chisel3.stage.phases.MaybeFirrtlStage.transform(MaybeFirrtlStage.scala:13)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:38)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:15)
[error] at firrtl.options.Translator.transform(Phase.scala:248)
[error] at firrtl.options.Translator.transform$(Phase.scala:248)
[error] at firrtl.options.phases.DeletedWrapper.transform(DeletedWrapper.scala:15)
[error] at firrtl.options.DependencyManager.$anonfun$transform$3(DependencyManager.scala:278)
[error] at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
[error] at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
[error] at scala.collection.immutable.List.foldLeft(List.scala:79)
[error] at firrtl.options.DependencyManager.transform(DependencyManager.scala:269)
[error] at firrtl.options.DependencyManager.transform$(DependencyManager.scala:255)
[error] at firrtl.options.PhaseManager.transform(DependencyManager.scala:436)
[error] at chisel3.stage.ChiselStage.run(ChiselStage.scala:45)
[error] at firrtl.options.Stage$$anon$1.transform(Stage.scala:43)
[error] at firrtl.options.Stage$$anon$1.transform(Stage.scala:43)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:38)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:15)
[error] at firrtl.options.Translator.transform(Phase.scala:248)
[error] at firrtl.options.Translator.transform$(Phase.scala:248)
[error] at firrtl.options.phases.DeletedWrapper.transform(DeletedWrapper.scala:15)
[error] at firrtl.options.Stage.$anonfun$transform$5(Stage.scala:47)
[error] at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
[error] at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
[error] at scala.collection.immutable.List.foldLeft(List.scala:79)
[error] at firrtl.options.Stage.$anonfun$transform$3(Stage.scala:47)
[error] at logger.Logger$.$anonfun$makeScope$2(Logger.scala:166)
[error] at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
[error] at logger.Logger$.makeScope(Logger.scala:164)
[error] at firrtl.options.Stage.transform(Stage.scala:47)
[error] at firrtl.options.Stage.execute(Stage.scala:58)
[error] Caused by: java.util.NoSuchElementException: None.get
[error] at scala.None$.get(Option.scala:627)
[error] at scala.None$.get(Option.scala:626)
[error] at firrtl.transforms.DeadCodeElimination.createDependencyGraph(DeadCodeElimination.scala:212)
[error] at firrtl.transforms.DeadCodeElimination.run(DeadCodeElimination.scala:338)
[error] at firrtl.transforms.DeadCodeElimination.execute(DeadCodeElimination.scala:395)
[error] at firrtl.Transform.transform(Compiler.scala:319)
[error] at firrtl.Transform.transform$(Compiler.scala:319)
[error] at firrtl.transforms.DeadCodeElimination.transform(DeadCodeElimination.scala:34)
[error] at firrtl.stage.transforms.ExpandPrepares.execute(ExpandPrepares.scala:19)
[error] at firrtl.Transform.transform(Compiler.scala:319)
[error] at firrtl.Transform.transform$(Compiler.scala:319)
[error] at firrtl.stage.transforms.ExpandPrepares.transform(ExpandPrepares.scala:7)
[error] at firrtl.stage.transforms.CatchCustomTransformExceptions.execute(CatchCustomTransformExceptions.scala:10)
[error] at firrtl.Transform.transform(Compiler.scala:319)
[error] at firrtl.Transform.transform$(Compiler.scala:319)
[error] at firrtl.stage.transforms.CatchCustomTransformExceptions.transform(CatchCustomTransformExceptions.scala:7)
[error] at firrtl.stage.transforms.UpdateAnnotations.$anonfun$internalTransform$1(UpdateAnnotations.scala:22)
[error] at firrtl.Utils$.time(Utils.scala:170)
[error] at firrtl.Transform$.runTransform(Compiler.scala:217)
[error] at firrtl.stage.transforms.UpdateAnnotations.internalTransform(UpdateAnnotations.scala:22)
[error] at firrtl.stage.transforms.UpdateAnnotations.internalTransform(UpdateAnnotations.scala:8)
[error] at firrtl.options.Translator.transform(Phase.scala:248)
[error] at firrtl.options.Translator.transform$(Phase.scala:248)
[error] at firrtl.stage.transforms.UpdateAnnotations.transform(UpdateAnnotations.scala:8)
[error] at firrtl.options.DependencyManager.$anonfun$transform$3(DependencyManager.scala:278)
[error] at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
[error] at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
[error] at scala.collection.immutable.List.foldLeft(List.scala:79)
[error] at firrtl.options.DependencyManager.transform(DependencyManager.scala:269)
[error] at firrtl.options.DependencyManager.transform$(DependencyManager.scala:255)
[error] at firrtl.stage.TransformManager.transform(TransformManager.scala:14)
[error] at firrtl.stage.phases.Compiler.$anonfun$internalTransform$6(Compiler.scala:120)
[error] at firrtl.Utils$.time(Utils.scala:170)
[error] at firrtl.stage.phases.Compiler.f$1(Compiler.scala:120)
[error] at firrtl.stage.phases.Compiler.$anonfun$internalTransform$8(Compiler.scala:125)
[error] at scala.collection.immutable.List.map(List.scala:246)
[error] at scala.collection.immutable.List.map(List.scala:79)
[error] at firrtl.stage.phases.Compiler.internalTransform(Compiler.scala:125)
[error] at firrtl.stage.phases.Compiler.internalTransform(Compiler.scala:45)
[error] at firrtl.options.Translator.transform(Phase.scala:248)
[error] at firrtl.options.Translator.transform$(Phase.scala:248)
[error] at firrtl.stage.phases.Compiler.transform(Compiler.scala:45)
[error] at firrtl.stage.phases.CatchExceptions.transform(CatchExceptions.scala:30)
[error] at firrtl.stage.phases.CatchExceptions.transform(CatchExceptions.scala:17)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:38)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:15)
[error] at firrtl.options.Translator.transform(Phase.scala:248)
[error] at firrtl.options.Translator.transform$(Phase.scala:248)
[error] at firrtl.options.phases.DeletedWrapper.transform(DeletedWrapper.scala:15)
[error] at firrtl.options.DependencyManager.$anonfun$transform$3(DependencyManager.scala:278)
[error] at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
[error] at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
[error] at scala.collection.immutable.List.foldLeft(List.scala:79)
[error] at firrtl.options.DependencyManager.transform(DependencyManager.scala:269)
[error] at firrtl.options.DependencyManager.transform$(DependencyManager.scala:255)
[error] at firrtl.options.PhaseManager.transform(DependencyManager.scala:436)
[error] at firrtl.stage.FirrtlStage.run(FirrtlStage.scala:38)
[error] at firrtl.options.Stage$$anon$1.transform(Stage.scala:43)
[error] at firrtl.options.Stage$$anon$1.transform(Stage.scala:43)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:38)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:15)
[error] at firrtl.options.Translator.transform(Phase.scala:248)
[error] at firrtl.options.Translator.transform$(Phase.scala:248)
[error] at firrtl.options.phases.DeletedWrapper.transform(DeletedWrapper.scala:15)
[error] at firrtl.options.Stage.$anonfun$transform$5(Stage.scala:47)
[error] at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
[error] at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
[error] at scala.collection.immutable.List.foldLeft(List.scala:79)
[error] at firrtl.options.Stage.$anonfun$transform$3(Stage.scala:47)
[error] at logger.Logger$.$anonfun$makeScope$2(Logger.scala:166)
[error] at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
[error] at logger.Logger$.makeScope(Logger.scala:164)
[error] at firrtl.options.Stage.transform(Stage.scala:47)
[error] at chisel3.stage.phases.MaybeFirrtlStage.$anonfun$transform$2(MaybeFirrtlStage.scala:22)
[error] at scala.Option.getOrElse(Option.scala:201)
[error] at chisel3.stage.phases.MaybeFirrtlStage.transform(MaybeFirrtlStage.scala:22)
[error] at chisel3.stage.phases.MaybeFirrtlStage.transform(MaybeFirrtlStage.scala:13)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:38)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:15)
[error] at firrtl.options.Translator.transform(Phase.scala:248)
[error] at firrtl.options.Translator.transform$(Phase.scala:248)
[error] at firrtl.options.phases.DeletedWrapper.transform(DeletedWrapper.scala:15)
[error] at firrtl.options.DependencyManager.$anonfun$transform$3(DependencyManager.scala:278)
[error] at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
[error] at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
[error] at scala.collection.immutable.List.foldLeft(List.scala:79)
[error] at firrtl.options.DependencyManager.transform(DependencyManager.scala:269)
[error] at firrtl.options.DependencyManager.transform$(DependencyManager.scala:255)
[error] at firrtl.options.PhaseManager.transform(DependencyManager.scala:436)
[error] at chisel3.stage.ChiselStage.run(ChiselStage.scala:45)
[error] at firrtl.options.Stage$$anon$1.transform(Stage.scala:43)
[error] at firrtl.options.Stage$$anon$1.transform(Stage.scala:43)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:38)
[error] at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:15)
[error] at firrtl.options.Translator.transform(Phase.scala:248)
[error] at firrtl.options.Translator.transform$(Phase.scala:248)
[error] at firrtl.options.phases.DeletedWrapper.transform(DeletedWrapper.scala:15)
[error] at firrtl.options.Stage.$anonfun$transform$5(Stage.scala:47)
[error] at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
[error] at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
[error] at scala.collection.immutable.List.foldLeft(List.scala:79)
[error] at firrtl.options.Stage.$anonfun$transform$3(Stage.scala:47)
[error] at logger.Logger$.$anonfun$makeScope$2(Logger.scala:166)
[error] at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
[error] at logger.Logger$.makeScope(Logger.scala:164)
[error] at firrtl.options.Stage.transform(Stage.scala:47)
[error] at firrtl.options.Stage.execute(Stage.scala:58)
What is the current behavior?
What is the expected behavior?
Please tell us about your environment:
What is the use case for changing the behavior?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels