diff options
| author | Jack Koenig | 2021-03-04 18:24:08 -0800 |
|---|---|---|
| committer | Jack Koenig | 2021-03-12 16:16:45 -0800 |
| commit | a8d32388ffa8c29a3b0f9e78ab6cd917b92954cd (patch) | |
| tree | 1ce22bbf889192de399adacc6725e1c87bd598bf /core/src | |
| parent | 1494231212425fd09f915d819102ca5cdef0dfcf (diff) | |
[plugin] Stop autoclonetype stack traces when using plugin
The compiler plugin obviates the need for using stack traces to
determine outer objects in autoclonetype. When the plugin was used to
compile a given Bundle, it will no longer collect a stack trace upon
construction. This should have massive benefits to elaboration runtime.
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/main/scala/chisel3/Aggregate.scala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/core/src/main/scala/chisel3/Aggregate.scala b/core/src/main/scala/chisel3/Aggregate.scala index 30276230..c5a917fa 100644 --- a/core/src/main/scala/chisel3/Aggregate.scala +++ b/core/src/main/scala/chisel3/Aggregate.scala @@ -809,11 +809,11 @@ abstract class Bundle(implicit compileOptions: CompileOptions) extends Record { // (like the outer module or enclosing Bundles). private var _outerInst: Option[Object] = None - // For autoclonetype, record possible candidates for outer instance. + // For reflective autoclonetype, record possible candidates for outer instance. // _outerInst should always take precedence, since it should be propagated from the original // object which has the most accurate context. - private val _containingModule: Option[BaseModule] = Builder.currentModule - private val _containingBundles: Seq[Bundle] = Builder.updateBundleStack(this) + private val _containingModule: Option[BaseModule] = if (_usingPlugin) None else Builder.currentModule + private val _containingBundles: Seq[Bundle] = if (_usingPlugin) Nil else Builder.updateBundleStack(this) private def checkClone(clone: Bundle): Unit = { for ((name, field) <- elements) { |
