trait Compiler extends Transform with DependencyAPIMigration
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3) Migrate to firrtl.stage.transforms.Compiler. This will be removed in 1.4.
- Source
- Compiler.scala
- Alphabetic
- By Inheritance
- Compiler
- DependencyAPIMigration
- Transform
- DependencyAPI
- TransformLike
- LazyLogging
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def emitter: Emitter
- abstract def transforms: Seq[Transform]
The sequence of transforms this compiler will execute
The sequence of transforms this compiler will execute
- Note
The inputForm of a given transform must be higher than or equal to the ouputForm of the preceding transform. See CircuitForm
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def execute(state: CircuitState): CircuitState
Perform the transform, encode renaming with RenameMap, and can delete annotations Called by runTransform.
Perform the transform, encode renaming with RenameMap, and can delete annotations Called by runTransform.
- state
Input Firrtl AST
- returns
A transformed Firrtl AST
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def getLogger: Logger
- Definition Classes
- LazyLogging
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def invalidates(a: Transform): Boolean
- Definition Classes
- DependencyAPIMigration
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val logger: Logger
- Attributes
- protected
- Definition Classes
- LazyLogging
- def name: String
A convenience function useful for debugging and error messages
A convenience function useful for debugging and error messages
- Definition Classes
- Transform → TransformLike
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def optionalPrerequisiteOf: Seq[TransformDependency]
- Definition Classes
- DependencyAPIMigration
- def optionalPrerequisites: Seq[TransformDependency]
- Definition Classes
- DependencyAPIMigration
- def prerequisites: Seq[TransformDependency]
- Definition Classes
- DependencyAPIMigration
- final def runTransform(state: CircuitState): CircuitState
Perform the transform and update annotations.
Perform the transform and update annotations.
- state
Input Firrtl AST
- returns
A transformed Firrtl AST
- Definition Classes
- Transform
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def transform(state: CircuitState): CircuitState
A mathematical transform on some type
A mathematical transform on some type
- returns
an output object of the same type
- Definition Classes
- Transform → TransformLike
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def compile(state: CircuitState, customTransforms: Seq[Transform]): CircuitState
Perform compilation
Perform compilation
Emission will only be performed if EmitAnnotations are present
- state
The Firrtl AST to compile
- customTransforms
Any custom Transforms that will be inserted into the compilation process by CompilerUtils.mergeTransforms
- returns
result of compilation
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3.3) Migrate to '(new FirrtlStage).execute(args: Array[String], annotations: AnnotationSeq)'.This will be removed in 1.4.
- def compile(state: CircuitState, writer: Writer, customTransforms: Seq[Transform] = Seq.empty): CircuitState
Perform compilation
Perform compilation
- state
The Firrtl AST to compile
- writer
The java.io.Writer where the output of compilation will be emitted
- customTransforms
Any custom Transforms that will be inserted into the compilation process by CompilerUtils.mergeTransforms
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.0) Migrate to '(new FirrtlStage).execute(args: Array[String], annotations: AnnotationSeq)'.This will be removed in 1.4.
- def compileAndEmit(state: CircuitState, customTransforms: Seq[Transform] = Seq.empty): CircuitState
Perform compilation and emit the whole Circuit
Perform compilation and emit the whole Circuit
This is intended as a convenience method wrapping up Annotation creation for the common case. It creates a EmitCircuitAnnotation that will be consumed by this Transform's emitter. The EmittedCircuit can be extracted from the returned CircuitState via CircuitState.emittedCircuitOption
- state
The Firrtl AST to compile
- customTransforms
Any custom Transforms that will be inserted into the compilation process by CompilerUtils.mergeTransforms
- returns
result of compilation with emitted circuit annotated
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3.3) Migrate to '(new FirrtlStage).execute(args: Array[String], annotations: AnnotationSeq)'.This will be removed in 1.4.
- def dependents: Seq[Dependency[Transform]]
All transforms that must run after this transform
All transforms that must run after this transform
This is a means of prerequisite injection into some other transform. Normally a transform will define its own prerequisites. Dependents exist for two main situations:
First, they improve the composition of optional transforms. If some first transform is optional (e.g., an expensive validation check), you would like to be able to conditionally cause it to run. If it is listed as a prerequisite on some other, second transform then it must always run before that second transform. There's no way to turn it off. However, by listing the second transform as a dependent of the first transform, the first transform will only run (and be treated as a prerequisite of the second transform) if included in a list of target transforms that should be run.
Second, an external library would like to inject some first transform before a second transform inside FIRRTL. In this situation, the second transform cannot have any knowledge of external libraries. The use of a dependent here allows for prerequisite injection into FIRRTL proper.
- Definition Classes
- DependencyAPI
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3) Due to confusion, 'dependents' is being renamed to 'optionalPrerequisiteOf'. Override the latter instead.
- Note
The use of a Seq here is to preserve input order. Internally, this will be converted to a private, ordered Set.
- See also
firrtl.passes.CheckTypes for an example of an optional checking firrtl.Transform
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
- final def inputForm: CircuitForm
- Definition Classes
- DependencyAPIMigration
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3) Use Dependency API methods for equivalent functionality. See: https://bit.ly/2Voppre
- final def outputForm: CircuitForm
- Definition Classes
- DependencyAPIMigration
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3) Use Dependency API methods for equivalent functionality. See: https://bit.ly/2Voppre
This is the documentation for Firrtl.