- Jul 20, 2019
-
-
Albert Magyar authored
* Add SimplifyMems transform to lower memories without splitting * Remove spurious anonymous function
-
- Jul 19, 2019
-
-
Albert Chen authored
* check isLocal before removing target tokens in RenameMap * add fix for Adam's test case, add more test cases * fix multiple renaming bug * call componentGet before checking underlying for ReferenceTargets in recursiveGet * add ModuleGet that implements new instance rename order * normalize target before renaming * fix forall/exists bug * add guards for isLocal cases * fix circuit renaming, fix traverseHierarchy, add debug prints * remove sensitivity stuff * add more tests * reapply parent path to renamed subpath, fix reference -> instance renames * remove debug prints * add instance as reference test case * fix Ref->IsMod, IsMod->Ref renamed, fix extra test cases * fix ofModule renaming for refs/instances * fix renaming of ofModules, change tests * fix more InstanceTarget rename bugs * remove bad ReferenceTarget test case * cleanup midRename of recursiveGet * fix comments * fix multiple ModuleTarget renames for InstanceTargets * dis-allow renaming of ModuleTargets to References * add back removed lines in RemoveCHIRRTL * fix indents * only add ofModule to refs if renaming an inst as a ref * change .moduleOpt.get to .module * disallow renaming ReferenceTarget->ModuleTarget * disallow ref->mod renames in tests, add inst as ref test cases * cache results of get functions * fix bot/mid/top renames, add andThen * fix andThen, add test case * add more test cases, fix ++ * fix comments, make things private * dont quit if earlier returns None, add dedup/inline rename tests * don't rename OfModules to instances paths * update dedup test * don't treat references as instances, don't reapply parents to absolute paths * fix more test cases * short-circuit OfModule renames if an absolute path is found * update andThen, remove orElse, deprecate ++ * removed commented code * update comments * respond to comments
-
- Jul 18, 2019
-
-
Schuyler Eldridge authored
README.md Patches
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Jul 16, 2019
-
-
Schuyler Eldridge authored
Change Dependency API to Class[_ <: A]
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Jul 12, 2019
-
-
Schuyler Eldridge authored
This changes the Dependency API to specify dependencies in terms of classes subtyping the DependencyAPI trait. Previously, this was invariant which caused a bunch of ugly, unneeded .asInstanceOf jank. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Jul 09, 2019
-
-
Leway Colin authored
-
Leway Colin authored
-
- Jul 04, 2019
-
-
Schuyler Eldridge authored
Add Dependency API
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Adds tests for the PhaseManager. This includes outputs in "test_run_dir" of Graphviz output. This will automatically generate a PNG if "dot" is on the path. Otherwise, it will just generate the Graphviz output. This includes tests that check for determinism.
-
Schuyler Eldridge authored
Adds the DependencyManager class which can be used to determine a legal sequence of TransformLikes given their Dependency API constraints. A DependencyManager determines an ordering that results in some target TransformLikes being run (without invalidations) given an initial state (some other set of TransformLikes). Algorithmically, this works as follows: 1. A DAG of TransformLikes w/ invalidation edges is constructed (the "invalidate graph") 2. A DAG of TransformLikes w/ prerequisite and dependent edges is constructed (the "dependents graph") 3. A toplogical sort of the dependents graph, seeded with the reverse topological sort of the invalidate graph, gives an ordering of TransformLikes. 4. This ordering is examined, node by node, cleaning up any mismatches between TransformLikes by solving DependencyManager sub-problems. As new graph nodes (which are classes) are found, these are lazily constructed. Data structures are maintained that map from classes to objects and back. All discovered classes will point to the same object. Determinism is maintained internally using LinkedHashMap and LinkedHashSet. Other changes: - Some methods that generate Graphviz for a DependencyManager are added. - One concrete implementation of a DependencyManager is added for Phases called "PhaseManager". Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds a PreservesAll that can be used to override the default invalidation scheme (invalidated everything except yourself) such that nothing is invalidated. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
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:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds a method to DiGraph called "seededLinearize". This generalizes the original topological sort ("linearize") to be parametric in an initial set of vertices. This enables the user to massage the DFS to produce a better topological sort if they have information about how the DFS should proceed. The initial set of vertices is expected to be made ordered via a LinkedHashSet. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Jul 03, 2019
-
-
Leway Colin authored
-
Leway Colin authored
-
- Jun 29, 2019
-
-
Albert Magyar authored
-
- Jun 28, 2019
-
-
Leway Colin authored
* Fix typo * Fix simple_rest typo Co-Authored-By:jack koenig <jack.koenig3@gmail.com> * simple_reset isn't a Array due to 'simple_reset+' change to 'simple_reset' in FIRRTL.g4
-
Leway Colin authored
* Add Test for AddDefaults phase * Refactor AddDefaultsSpec
-
- Jun 21, 2019
-
-
Leway Colin authored
-
- Jun 19, 2019
-
-
Leway Colin authored
* Add sbt-scalafix * Add scalafix guide to README * Remove Unused Import * Remove deprecated procedure syntax
-
- Jun 13, 2019
-
-
Schuyler Eldridge authored
Remove unused variables in `stage.phases.Checks`
-
Leway Colin authored
-
- Jun 06, 2019
-
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Fix typo.
-
Leway Colin authored
Because of there isn't extends anything, delete the 'extends' keyword
-
- Jun 04, 2019
-
-
Kevin Laeufer authored
This updates the spec to refelect the changes made in #587. It also fixes issue #968.
-
- May 30, 2019
-
-
harrisonliew authored
-
- May 25, 2019
-
-
Jack Koenig authored
Emit Verilog IntParams that fit in 32-bits as Integer literals
-
- May 10, 2019
-
-
Adam Izraelevitz authored
* Added test to GroupComponentsSpec demonstrating bug * Added bugfix to GroupComponents for invalid ports of grouped instances
-
- May 04, 2019
-
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Leway Colin authored
-
- Apr 30, 2019
-
-
Schuyler Eldridge authored
Update NoCircuitDedupAnnotation so it's available from firrtl.stage.FirrtlMain
-
Jim Lawson authored
-
- Apr 27, 2019
-
-
Jack Koenig authored
Stage/Phase
-
- Apr 26, 2019
-
-
Schuyler Eldridge authored
Abstracts away option writing such that users no longer have to understand scopt semantics. This adds a ShellOption class and a HasShellOptions trait for something which provides one or more ShellOptions. This refactors the FIRRTL codebase to use this style of option specification. Adds and uses DeletedWrapper to automatically generate DeletedAnnotations. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This switches the OptionsView/Viewer typeclass to use more canonical approaches and helper methods. This uses a context bound instead of an explicitly specified implicit argument. Additionally, this adds an apply method to OptionsView to enable more canonical use of the OptionsView typeclass. With this, you can now do things like `Viewer[FirrtlOptions].view` in addition to the old (and still available) `Viewer.view[FirrtlOptions]`. Uses of the latter are updated to use the former. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-