1. Jul 23, 2020
  2. Jul 20, 2020
  3. Jul 18, 2020
    • Kevin Laeufer's avatar
      Faster dedup instance graph (#1732) · 1b9f4ddf
      Kevin Laeufer authored
      
      
      * dedup: add faster InstanceGraph implementation and use it in dedup
      
      The new implementation takes care not to hash the instance
      types contained in DefInstance nodes.
      This should make dedup considerably faster.
      
      * FastInstanceGraph: cache vertices for faster findInstancesInHierarchy
      
      * FastInstanceGraph: remove the parent name field since it isn't actually necessary
      
      * FastInstanceGraph -> InstanceKeyGraph
      
      * InstanceGraph: describe performance problems.
      
      * InstanceKeyGraph: turn moduleMap into a def instead of a val
      
      This will make changing implementation details much easier
      in the future.
      
      * InstanceKeyGraph: return childInstances as Seq instead of Map
      
      This ensures a deterministic iteration order and it
      can easily be turned into a Map for O(1) accesses.
      
      * InstanceKeyGraph: add tests for public methods
      
      * InstanceKeyGraph: group public methods together
      
      * InstanceKeyGraphSpec: fix wording of a comment
      
      Co-authored-by: default avatarmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
      1b9f4ddf
    • Schuyler Eldridge's avatar
      Cross-build unidoc in CI (#1772) · 5f70175d
      Schuyler Eldridge authored
      
      
      Add cross-building of unidoc to test issues if a user later does a
      +publishLocal (like with Chisel CI).
      
      Signed-off-by: default avatarSchuyler Eldridge <schuyler.eldridge@ibm.com>
      5f70175d
    • Schuyler Eldridge's avatar
      Merge pull request #1771 from freechipsproject/fuzzer-2.11-fixes · 59607657
      Schuyler Eldridge authored
      Fix Fuzzer for 2.11
      59607657
  4. Jul 17, 2020
  5. Jul 16, 2020
    • Kevin Laeufer's avatar
      ir: store FileInfo string in escaped format (#1690) · 24be0ac3
      Kevin Laeufer authored
      This should speed up the common case
      as the compiler never operates on the
      unescaped string.
      The new escape function also fixes a bug
      where ']' was not escaped even though it
      is the delimiting character for FileInfo.
      In order to maintain backwards
      compatibility for the ProtoBuf format,
      this patch adds escape/unescape calls
      when going from/to protobuf format.
      For better performance we should consider
      changing the protobuf format.
      24be0ac3
  6. Jul 15, 2020
  7. Jul 14, 2020
  8. Jul 11, 2020
  9. Jul 10, 2020
  10. Jul 09, 2020
    • Kevin Laeufer's avatar
      dedup: use structural sha256 hash instead of agnostify and serialize (#1731) · 3fee5f87
      Kevin Laeufer authored
      
      
      * benchmark: add hot.DedupBenchmark
      
      * dedup: use structural md5 hash instead of agnostify and serialize
      
      * StructuralHash: generate PrimOp LUT
      
      * StructuralHash: change MessageDigestHasher to not be a case class
      
      * StructuralHash: we want Blocks and EmptyStmt to be ignored
      
      * StructuralHash: use SHA-256 instead of MD5
      
      * StructuralHash: clarify extmodule port name agnistification
      
      * StructuralHash: hash the name of width vars instead of trying to agnostify
      
      This should be in line with the old Dedup behavior.
      The prior use of n(..) was incorrect since the namespace
      of these vars is different from the normal module scope namespace.
      
      * StructuralHash: address Schuyler's review comments
      
      Co-authored-by: default avatarmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
      3fee5f87
    • Kevin Laeufer's avatar
      ir: add faster serializer (#1694) · 05ba1c9d
      Kevin Laeufer authored
      
      
      This Serializer which is implemented
      external to the IR node definition
      uses a StringBuilder to achieve about a
      1.7x performance improvement when serializing.
      
      Eventually, all implementations of the
      `serialize` methd should be replaced with
      a call to `Serializer.serialize`.
      
      However, for this PR we keep the old
      code in place in order to allow for easy
      regression testing with the benchmark JAR
      like this:
      > java -cp utils/bin/firrtl-benchmark.jar \
        firrtl.benchmark.hot.SerializationBenchmark \
        ~/benchmarks/medium.pb 2 5 test
      
      Co-authored-by: default avatarmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
      05ba1c9d
  11. Jul 08, 2020
  12. Jul 02, 2020
  13. Jun 27, 2020
  14. Jun 26, 2020
  15. Jun 25, 2020
  16. Jun 24, 2020
    • Jack Koenig's avatar
      Don't Dedup modules if it would change semantics (#1713) · e0e68568
      Jack Koenig authored
      If a module has ports of type Bundle that are used in aggregate
      connections in parent modules, Dedup cannot change the names of the
      fields of the Bundle or it would change the semantics of the connection.
      Dedup now detects this case and refrains from agnostifying the ports of
      such modules to prevent this issue.
      e0e68568