<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sfcX/src/main/scala/firrtl/analyses, branch 1.6.x</title>
<subtitle>Scala FIRRTL Compiler for chiselX</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/'/>
<entry>
<title>Allow Side Effecting Statement to have Names (#2057)</title>
<updated>2021-02-17T20:16:52+00:00</updated>
<author>
<name>Kevin Laeufer</name>
</author>
<published>2021-02-17T20:16:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=5a89fca6090948d0a99c217a09c692e58a20d1df'/>
<id>5a89fca6090948d0a99c217a09c692e58a20d1df</id>
<content type='text'>
* firrtl: add optional statement labels for stop, printf, assert, assume and cover

* test: parsing of statement labels

* ir: ensure that name is properly retained

* SymbolTable: add support for labled statements

* test: parsing statement labels

* test: lower types name collisions with named statements

* ignore empty names

* Inline: deal with named and unnamed statements

* RemoveWires: treat stop, printf and verification statements as "others"

* test: fix InlineInstance tests

* DeadCodeEliminations: statements are now als declarations

* CheckHighForm: ensure that statement names are not used as references

* CheckSpec: throw error if statement name collides

* add pass to automatically add missing statement names

* check: make sure that two statements cannot have the same name

* stmtLabel -&gt; stmtName

* scalafmt

* add statement names to spec

* spec: meta data -&gt; metadata

* EnsureStatementNames: explain naming algorithm

* remove returns

* better namespace use

* ir: add CanBeReferenced trait

* ir: add newline as jack requested</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* firrtl: add optional statement labels for stop, printf, assert, assume and cover

* test: parsing of statement labels

* ir: ensure that name is properly retained

* SymbolTable: add support for labled statements

* test: parsing statement labels

* test: lower types name collisions with named statements

* ignore empty names

* Inline: deal with named and unnamed statements

* RemoveWires: treat stop, printf and verification statements as "others"

* test: fix InlineInstance tests

* DeadCodeEliminations: statements are now als declarations

* CheckHighForm: ensure that statement names are not used as references

* CheckSpec: throw error if statement name collides

* add pass to automatically add missing statement names

* check: make sure that two statements cannot have the same name

* stmtLabel -&gt; stmtName

* scalafmt

* add statement names to spec

* spec: meta data -&gt; metadata

* EnsureStatementNames: explain naming algorithm

* remove returns

* better namespace use

* ir: add CanBeReferenced trait

* ir: add newline as jack requested</pre>
</div>
</content>
</entry>
<entry>
<title>Fix post-merge publishing (#2055)</title>
<updated>2021-01-26T19:14:33+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2021-01-26T19:14:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=aec9e9e61f9b6775bf313601ec5a44a34f608609'/>
<id>aec9e9e61f9b6775bf313601ec5a44a34f608609</id>
<content type='text'>
* 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.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup some warnings (#2032)</title>
<updated>2021-01-20T04:19:08+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2021-01-20T04:19:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=031fe1382660867750e6eeebea5665c137dbccbe'/>
<id>031fe1382660867750e6eeebea5665c137dbccbe</id>
<content type='text'>
Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Change to Apache 2.0 License (#1901)</title>
<updated>2020-09-17T01:52:16+00:00</updated>
<author>
<name>Chick Markley</name>
</author>
<published>2020-09-17T01:52:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=ecb96e83324ea17cf38b7b90753d745d3c7f51bd'/>
<id>ecb96e83324ea17cf38b7b90753d745d3c7f51bd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>All of src/ formatted with scalafmt</title>
<updated>2020-08-15T02:47:53+00:00</updated>
<author>
<name>chick</name>
</author>
<published>2020-08-15T02:47:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=6fc742bfaf5ee508a34189400a1a7dbffe3f1cac'/>
<id>6fc742bfaf5ee508a34189400a1a7dbffe3f1cac</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Combined Uniquify and LowerTypes pass  (#1784)</title>
<updated>2020-08-12T18:55:23+00:00</updated>
<author>
<name>Kevin Laeufer</name>
</author>
<published>2020-08-12T18:55:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=fa3dcce6a448de3d17538c54ca12ba099c950071'/>
<id>fa3dcce6a448de3d17538c54ca12ba099c950071</id>
<content type='text'>
* Utils: add to_dir helper function

* firrt.SymbolTable trait for scanning declarations

* ir: RefLikeExpression trait to represent SubField, SubIndex, SubAccess and Reference nodes

* add new implementation of the LowerTypes pass

* replace LowerTypes with NewLowerTypes

* remove dependencies on Uniquify

* GroupComponentSpec: GroupComponents is run before lower types

* NewLowerTypes: address Adam's suggestions

* LoweringCompilerSpec: Uniquify was removed and NewLowerTypes

* LowerTypesSpec: add newline at the end of file

* LowerTypesSpec: port Uniquify tests to combined pass

* NewLowerTypes: ensure that internal methods are not visible

* NewLowerTypes: extend DependencyAPIMigration

* NewLowerTypes: lower ports without looking at the body

* LowerTypesSpec: use TransformManager instead of hard coded passes.

* NewLowerTypes: names are already assumed to be part of the namespace

* LowerTypesSpec: test name clashes between ports and nodes,  inst, mem

* NewLowerTypes: correctly rename nodes, mems and instances that clash with port names

* NewLowerTypes: Iterable[String] instead of Seq[String] for 2.13

* NewLowerTypes: add a fast path for ground types without renaming

* LowerTypesSpec: remove trailing commans for 2.11

* LowerTypesSpec: explain why there are two

* Uniquify: use loweredName from NewLowerType

* replace old LowerTypes pass with NewLowerTypes pass

* Uniquify: deprecate pass usage

There are some functions that are still used by other passes.

* LowerTypes: InstanceKeyGraph now has a private constructor

* LowerTypes: remove remaining references to NewLowerTypes

* LoweringCompilerSpec: fix transform order to LowerTypes

* SymbolTable: add improvements from PR

* LoweringCompilerSpec: ignore failing CustomTransform tests</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Utils: add to_dir helper function

* firrt.SymbolTable trait for scanning declarations

* ir: RefLikeExpression trait to represent SubField, SubIndex, SubAccess and Reference nodes

* add new implementation of the LowerTypes pass

* replace LowerTypes with NewLowerTypes

* remove dependencies on Uniquify

* GroupComponentSpec: GroupComponents is run before lower types

* NewLowerTypes: address Adam's suggestions

* LoweringCompilerSpec: Uniquify was removed and NewLowerTypes

* LowerTypesSpec: add newline at the end of file

* LowerTypesSpec: port Uniquify tests to combined pass

* NewLowerTypes: ensure that internal methods are not visible

* NewLowerTypes: extend DependencyAPIMigration

* NewLowerTypes: lower ports without looking at the body

* LowerTypesSpec: use TransformManager instead of hard coded passes.

* NewLowerTypes: names are already assumed to be part of the namespace

* LowerTypesSpec: test name clashes between ports and nodes,  inst, mem

* NewLowerTypes: correctly rename nodes, mems and instances that clash with port names

* NewLowerTypes: Iterable[String] instead of Seq[String] for 2.13

* NewLowerTypes: add a fast path for ground types without renaming

* LowerTypesSpec: remove trailing commans for 2.11

* LowerTypesSpec: explain why there are two

* Uniquify: use loweredName from NewLowerType

* replace old LowerTypes pass with NewLowerTypes pass

* Uniquify: deprecate pass usage

There are some functions that are still used by other passes.

* LowerTypes: InstanceKeyGraph now has a private constructor

* LowerTypes: remove remaining references to NewLowerTypes

* LoweringCompilerSpec: fix transform order to LowerTypes

* SymbolTable: add improvements from PR

* LoweringCompilerSpec: ignore failing CustomTransform tests</pre>
</div>
</content>
</entry>
<entry>
<title>Deprecate InstanceGraph (#1800)</title>
<updated>2020-08-05T20:35:41+00:00</updated>
<author>
<name>Kevin Laeufer</name>
</author>
<published>2020-08-05T20:35:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=b1ec7cd70ab267cd30d8421651625ba1d9a623ff'/>
<id>b1ec7cd70ab267cd30d8421651625ba1d9a623ff</id>
<content type='text'>
* 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</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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</pre>
</div>
</content>
</entry>
<entry>
<title>CircuitGraph: remove fields from public API (#1813)</title>
<updated>2020-07-31T17:40:33+00:00</updated>
<author>
<name>Kevin Laeufer</name>
</author>
<published>2020-07-31T17:40:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=31132333d5c0cbef52035cf76b677edd9b208b5e'/>
<id>31132333d5c0cbef52035cf76b677edd9b208b5e</id>
<content type='text'>
They are never used outside of the class
not even in tests.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
They are never used outside of the class
not even in tests.</pre>
</div>
</content>
</entry>
<entry>
<title>[WIP] Implement CircuitGraph and IRLookup to firrtl.analyses (#1603)</title>
<updated>2020-07-31T16:25:13+00:00</updated>
<author>
<name>Jiuyang Liu</name>
</author>
<published>2020-07-31T16:25:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=f22652a330afe1daa77be2aadb525d65ab05e9fe'/>
<id>f22652a330afe1daa77be2aadb525d65ab05e9fe</id>
<content type='text'>
* WIP Commit

* Add EdgeDataDiGraph with views to amortize graph construction

* WIP, got basic structure, need tests to pipeclean

* First tests pass. Need more.

* Tests pass, more need to be written

* More tests pass! Things should work, except for memories

* Added clearPrev to fix digraph uses where caching prev breaks

* Removed old Component. Documented IRLookup

* Added comments. Make prev arg to getEdges

* WIP: Refactoring for CircuitGraph

* Refactored into CircuitGraph. Can do topological module analysis

* Removed old versions

* Added support for memories

* Added cached test

* More stufffff

* Added implicit caching of connectivity

* Added tests for IRLookup, and others

* Many major changes.

Replaced CircuitGraph as ConnectionGraph
Added CircuitGraph to be top-level user-facing object
ConnectionGraph now automatically shortcuts getEdges
ConnectionGraph overwrites BFS as PriorityBFS
Added leafModule to Target
Added lookup by kind to IRLookup
Added more tests

* Reordered stuff in ConnectionGraph

* Made path work with deep hierarchies. Added PML for IllegalClockCrossings

* Made pathsInDAG work with current shortcut semantics

* Bugfix: check pathless targets when shortcutting paths

* Added documentation/licenses

* Removed UnnamedToken and related functionality

* Added documentation of ConnectionGraph

* Added back topo, needed for correct solving of intermediate modules

* Bugfix. Cache intermediate clockSources from same BFS with same root, but not BFS with different root

* Added literal/invalid clock source, and unknown top for getclocksource

* Bugfix for clocks in bundles

* Add CompleteTargetSerializer and test

* remove ClockFinder, be able to compile.

* test is able to compile, but need to fix.

* public and abstract DiGraph, remove DiGraphLike.

* revert some DiGraph code, ConnectionGraphSpec passed.

* CircuitGraphSpec passed.

* minimize diff between master

* codes clean up

* override linearize and revert DiGraph

* keep DiGraph unchanged.

* make ci happy again.

* codes clean up.

* bug fix for rebase

* remove wir

* make scaladoc happy again.

* update for review.

* add some documentation.

* remove tag

* wip IRLookup

* code clean up and add some doucmentations.

* IRLookup cache with ModuleTarget guarded.

* make unidoc and 2.13 happy

Co-authored-by: Adam Izraelevitz &lt;azidar@gmail.com&gt;
Co-authored-by: Albert Magyar &lt;albert.magyar@gmail.com&gt;
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* WIP Commit

* Add EdgeDataDiGraph with views to amortize graph construction

* WIP, got basic structure, need tests to pipeclean

* First tests pass. Need more.

* Tests pass, more need to be written

* More tests pass! Things should work, except for memories

* Added clearPrev to fix digraph uses where caching prev breaks

* Removed old Component. Documented IRLookup

* Added comments. Make prev arg to getEdges

* WIP: Refactoring for CircuitGraph

* Refactored into CircuitGraph. Can do topological module analysis

* Removed old versions

* Added support for memories

* Added cached test

* More stufffff

* Added implicit caching of connectivity

* Added tests for IRLookup, and others

* Many major changes.

Replaced CircuitGraph as ConnectionGraph
Added CircuitGraph to be top-level user-facing object
ConnectionGraph now automatically shortcuts getEdges
ConnectionGraph overwrites BFS as PriorityBFS
Added leafModule to Target
Added lookup by kind to IRLookup
Added more tests

* Reordered stuff in ConnectionGraph

* Made path work with deep hierarchies. Added PML for IllegalClockCrossings

* Made pathsInDAG work with current shortcut semantics

* Bugfix: check pathless targets when shortcutting paths

* Added documentation/licenses

* Removed UnnamedToken and related functionality

* Added documentation of ConnectionGraph

* Added back topo, needed for correct solving of intermediate modules

* Bugfix. Cache intermediate clockSources from same BFS with same root, but not BFS with different root

* Added literal/invalid clock source, and unknown top for getclocksource

* Bugfix for clocks in bundles

* Add CompleteTargetSerializer and test

* remove ClockFinder, be able to compile.

* test is able to compile, but need to fix.

* public and abstract DiGraph, remove DiGraphLike.

* revert some DiGraph code, ConnectionGraphSpec passed.

* CircuitGraphSpec passed.

* minimize diff between master

* codes clean up

* override linearize and revert DiGraph

* keep DiGraph unchanged.

* make ci happy again.

* codes clean up.

* bug fix for rebase

* remove wir

* make scaladoc happy again.

* update for review.

* add some documentation.

* remove tag

* wip IRLookup

* code clean up and add some doucmentations.

* IRLookup cache with ModuleTarget guarded.

* make unidoc and 2.13 happy

Co-authored-by: Adam Izraelevitz &lt;azidar@gmail.com&gt;
Co-authored-by: Albert Magyar &lt;albert.magyar@gmail.com&gt;
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[2.13] convert toSeq and toMap where necessary to compile</title>
<updated>2020-07-29T22:26:30+00:00</updated>
<author>
<name>Kevin Laeufer</name>
</author>
<published>2020-07-28T16:40:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=3b22cea87c9d5977c1f7a797091208034dbb8f2e'/>
<id>3b22cea87c9d5977c1f7a797091208034dbb8f2e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
