From 4081d9f45a30d9f9e5711563b828f34257d4c19d Mon Sep 17 00:00:00 2001 From: Jared Barocsi Date: Wed, 14 Jul 2021 13:10:15 -0700 Subject: Fix memory annotation deduplication (#2286) * Add transform to deduplicate memory annotations * Add annotation deduplication to Dedup stage * ResolveAnnotationPaths and EliminateTargetPaths now invalidate the dedup annotations transform * Verilog emitter now throws exception when memory annotations fail to dedup Co-authored-by: Jack Koenig --- .../scala/firrtl/annotations/transforms/EliminateTargetPaths.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/main/scala/firrtl/annotations/transforms') diff --git a/src/main/scala/firrtl/annotations/transforms/EliminateTargetPaths.scala b/src/main/scala/firrtl/annotations/transforms/EliminateTargetPaths.scala index b63dd13e..104aafc3 100644 --- a/src/main/scala/firrtl/annotations/transforms/EliminateTargetPaths.scala +++ b/src/main/scala/firrtl/annotations/transforms/EliminateTargetPaths.scala @@ -12,6 +12,7 @@ import firrtl.ir._ import firrtl.{AnnotationSeq, CircuitState, DependencyAPIMigration, FirrtlInternalException, RenameMap, Transform} import firrtl.stage.Forms import firrtl.transforms.DedupedResult +import firrtl.transforms.DedupAnnotationsTransform import scala.collection.mutable @@ -105,7 +106,7 @@ class EliminateTargetPaths extends Transform with DependencyAPIMigration { override def prerequisites = Forms.MinimalHighForm override def optionalPrerequisites = Seq.empty override def optionalPrerequisiteOf = Seq.empty - override def invalidates(a: Transform) = false + override def invalidates(a: Transform) = a.isInstanceOf[DedupAnnotationsTransform] /** Replaces old ofModules with new ofModules by calling dupMap methods * Updates oldUsedOfModules, newUsedOfModules -- cgit v1.2.3