Commit 2585bf98 authored by Schuyler Eldridge's avatar Schuyler Eldridge
Browse files

Add a DependencyAPI to firrtl.options.Phase



This adds a TransformLike mixin, DependencyAPI, that defines the basis
of the Dependency API for Stage/Phase. DependencyAPI defines three
members that define dependency relationships for some TransformLike
"Foo":

- "Prerequisites" define TransformLikes that should run before Foo
- "Dependents" define TransformLikes that should run after Foo. This
  allows Foo to inject prerequisites into some other TransformLike.
- "Invalidates" define a function that will return true if a specific
  TransformLike would be invalidated by Foo

Prerequisites and Dependents are not Sets due to lack of a fast,
immutable Set that preserves insertion order. Internally, these are
converted to a private LinkedHashSet.

Signed-off-by: default avatarSchuyler Eldridge <schuyler.eldridge@ibm.com>
parent a514408c
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment