aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/transforms/ConstantPropagation.scala
diff options
context:
space:
mode:
authorDavid Biancolin2020-03-09 17:53:11 -0700
committerGitHub2020-03-09 17:53:11 -0700
commit113a4aa3641c49b4c86e0cc23b3897b935c9b445 (patch)
treedc991d77b3a1c6328d60bc98add2cc0d2ed70451 /src/main/scala/firrtl/transforms/ConstantPropagation.scala
parent0c40f2b3bf0088a226cdfcb551fc72972a030395 (diff)
Provide an annotation mix-in that marks RTs as dontTouch (#1433)
* Provide an annotation mix-in that marks RTs as dontTouch * Update src/main/scala/firrtl/transforms/OptimizationAnnotations.scala Co-Authored-By: Albert Magyar <albert.magyar@gmail.com> * Update src/test/scala/firrtlTests/DCETests.scala Co-Authored-By: Albert Magyar <albert.magyar@gmail.com> * Update src/main/scala/firrtl/transforms/OptimizationAnnotations.scala * Update OptimizationAnnotations.scala Co-authored-by: Albert Magyar <albert.magyar@gmail.com>
Diffstat (limited to 'src/main/scala/firrtl/transforms/ConstantPropagation.scala')
-rw-r--r--src/main/scala/firrtl/transforms/ConstantPropagation.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/scala/firrtl/transforms/ConstantPropagation.scala b/src/main/scala/firrtl/transforms/ConstantPropagation.scala
index 201c3325..55c897b3 100644
--- a/src/main/scala/firrtl/transforms/ConstantPropagation.scala
+++ b/src/main/scala/firrtl/transforms/ConstantPropagation.scala
@@ -690,8 +690,12 @@ class ConstantPropagation extends Transform with ResolvedAnnotationPaths {
}
def execute(state: CircuitState): CircuitState = {
- val dontTouches: Seq[(OfModule, String)] = state.annotations.collect {
- case DontTouchAnnotation(Target(_, Some(m), Seq(Ref(c)))) => m.OfModule -> c
+ val dontTouchRTs = state.annotations.flatMap {
+ case anno: HasDontTouches => anno.dontTouches
+ case o => Nil
+ }
+ val dontTouches: Seq[(OfModule, String)] = dontTouchRTs.map {
+ case Target(_, Some(m), Seq(Ref(c))) => m.OfModule -> c
}
// Map from module name to component names
val dontTouchMap: Map[OfModule, Set[String]] =