aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/transforms/ManipulateNames.scala
AgeCommit message (Collapse)Author
2021-12-17Deprecate all mutable methods on RenameMap (#2444)Jack Koenig
* Add renamemap.MutableRenameMap which includes these methods without deprecation * Deprecate Stringly typed RenameMap APIs which were accidentally undeprecated a while ago Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2021-01-26Fix post-merge publishing (#2055)Jack Koenig
* Check Unidoc on all versions of Scala It is required for publishing and we publish every version * Fix conflicting cross-version suffixes issue When running `sbt ++2.13.4 unidoc`, SBT would set the Scala version for the fuzzer and benchmark projects even though they aren't really relevant to the command. This may be a misconfiguration or a bug in the unidoc plugin. Whatever the case, simply making it possible for them to use the same version of Scala as the firrtl project (on which they depend) fixes the issue. * Match versions of Scala in build.sbt and CI * Fix unidoc issues in 2.13.4 There is some bug in ScalaDoc not finding some links in firrtl.options so those links were made absolute as a workaround.
2020-10-26bug fix for VerilogPrep using wrong type.Jiuyang liu
2020-09-16Change to Apache 2.0 License (#1901)Chick Markley
2020-08-14All of src/ formatted with scalafmtchick
2020-08-05Deprecate InstanceGraph (#1800)Kevin Laeufer
* InstanceKeyGraph: add staticInstanceCount, getGraph and getChildrenInstanceMap * InstanceKeyGraph: reachableModules, unreachableModules, lowestCommonAncestor and fullHierarchy * Replace usage of InstanceGraph with InstanceKeyGraph Also deprecates all unused methods. * WiringUtils: make new version of sinksToSources package private This will make our live easier next time we need to change it. * CircuitGraph: use InstanceKeyGraph * InstanceKeyGraphSpec: respect maximum line width * InstanceKeyGraph: make constructor private * InstanceKeyGraph: move lowestCommonAncestor function to Wiring * WiringUtils: update deprecation message
2020-07-29ManipulateNames: use composition instead of extending HashMapKevin Laeufer
2020-07-01Fix unchecked type in ManipulateNames (#1726)Schuyler Eldridge
Fix a bug where a type check would always yield true. This caused a bug where allow/block-list annotations would be incorrectly applied to all subtypes of ManipulateNames. The tests are updated to check that this now works. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-25Add ManipulateNamesAllowlistResultAnnotationSchuyler Eldridge
Add a new annotation that stores the resulting name of an allowlist name to be manipulated. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
2020-06-25Refactor RemoveKeywordCollisions->ManipulateNamesSchuyler Eldridge
Rewrite of RemoveKeywordCollisions into a more generic ManipulateNames. The new ManipulateNames transform is abstract in a '(String, Namespace) => String' method that can be used for arbitrary manipulation of names in a circuit. The software architecture remains mostly the same (a rename map is used as the underlying data store). However, the new ManipulateNames used Target as opposed to Named. Add the ability for naming to be selectively enabled or disabled via: - ManipulateNamesAllowlistAnnotation - ManipulateNamesBlocklistAnnotation Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
2020-06-03Revert: Generalize keyword collision to name manipulation, Add ↵Schuyler Eldridge
{Lower,Upper}CaseNames Transforms (#1651) * Revert "Add test of {Lower, Upper}CaseNames" This reverts commit 93c078b8469bc55cd2d33147c33e2b5421fda9d9. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com> * Revert "Add --change-name-case <lower|upper> option" This reverts commit d3ab7e2db66fe3a63778f427dad6c08f64695ba5. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com> * Revert "Add features.{LowerCaseNames, UpperCaseNames} transforms" This reverts commit c8dcdacf313f19a4d0238be694478a325432edd4. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com> * Revert "Refactor RemoveKeywordCollisions->ManipulateNames" This reverts commit c534c5abae7b80a725ec9925569b3383b3c24a34. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-05-13Add features.{LowerCaseNames, UpperCaseNames} transformsSchuyler Eldridge
Creates the features package and populates it with two new transforms: LowerCaseNames and UpperCaseNames. These transforms convert all names in a FIRRTL circuit to lower case or upper case. This is intended to help align generated Verilog with the policies of the company/institution using it. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com> squash! Add LowerCaseNames and UpperCaseNames transforms
2020-05-13Refactor RemoveKeywordCollisions->ManipulateNamesSchuyler Eldridge
Generalize the operations of the RemoveKeywordCollisions transform into a new ManipulateNames transform. The ManipulateNames transform is an abstract transform for making conditional modifications to keywords/names in a FIRRTL circuit. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>