diff options
| author | Jack Koenig | 2020-06-19 16:55:11 -0700 |
|---|---|---|
| committer | GitHub | 2020-06-19 23:55:11 +0000 |
| commit | 9bda7a75686e075df038b2c24fbd30ad8ae0d941 (patch) | |
| tree | ebf73bad70eaa2cebce94bd68bff7ec6769c99ff /src | |
| parent | 8eaf10edff0a7f58cce214ad1f13ad7cdb682aef (diff) | |
Memoize the hashcode of the ChiselCircuitAnnotation (#1485)
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/chisel3/stage/ChiselAnnotations.scala | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/scala/chisel3/stage/ChiselAnnotations.scala b/src/main/scala/chisel3/stage/ChiselAnnotations.scala index 11697d7d..e4906456 100644 --- a/src/main/scala/chisel3/stage/ChiselAnnotations.scala +++ b/src/main/scala/chisel3/stage/ChiselAnnotations.scala @@ -90,7 +90,12 @@ object ChiselGeneratorAnnotation extends HasShellOptions { /** Stores a Chisel Circuit * @param circuit a Chisel Circuit */ -case class ChiselCircuitAnnotation(circuit: Circuit) extends NoTargetAnnotation with ChiselOption +case class ChiselCircuitAnnotation(circuit: Circuit) extends NoTargetAnnotation with ChiselOption { + /* Caching the hashCode for a large circuit is necessary due to repeated queries. + * Not caching the hashCode will cause severe performance degredations for large [[Circuit]]s. + */ + override lazy val hashCode: Int = circuit.hashCode +} case class ChiselOutputFileAnnotation(file: String) extends NoTargetAnnotation with ChiselOption |
