1. Jan 11, 2023
    • Jack Koenig's avatar
      Promote ChiselEnum user APIs from experimental (#2929) · 424e9446
      Jack Koenig authored
      They are commonly used and if we were ever to change them, we will need
      to go through a deprecation process anyway.
      
      Note that the EnumAnnotations remain in chisel3.experimental because,
      like all Chisel annotation support, they are slated to be deprecated and
      removed.
      424e9446
  2. Jan 10, 2023
  3. Jan 07, 2023
    • Jack Koenig's avatar
      Merge pull request #2921 from chipsalliance/fix-lazy-clone · 8bac0d7f
      Jack Koenig authored
      Fix lazy cloning and apply the optimization in more cases
      8bac0d7f
    • Jack Koenig's avatar
      Add tests for lazy cloning behavior of Vecs · 051ddf26
      Jack Koenig authored
      051ddf26
    • Jack Koenig's avatar
      55e22bdd
    • Jack Koenig's avatar
      Change mustClone calculation to use _minId · 4ecac958
      Jack Koenig authored
      Previously it used a calculation of whether a given Record (or Bundle)
      contained an "external reference", defined as any element with an _id
      less than the _id of the Record. This does not work for certain cases
      because it is not recursive and a child Record could itself contain an
      external reference. Changing the calculation to be recursive negates
      much of the benefit because many cases that should not need to clone end
      up cloning.
      
      The new algorithm instead uses a notion of "minimum id" for a Data. For
      most Data, this is just _id, but for Records, it is the minimum id of
      any of its children (recursively). This does replace the previous 1-byte
      memoized field with an 8-byte field, but this algorithm works better and
      should result in more savings from lazy cloning.
      4ecac958
  4. Jan 06, 2023
  5. Jan 05, 2023
    • Jack Koenig's avatar
      Fix bug where Flipped did not properly flip (#2919) · 643ee29b
      Jack Koenig authored
      In cases when Flipped needs to clone, it was using the specified
      direction of the clone. Since cloneType does not propagate
      specifiedDirection, it was essentially always flipping an unspecified
      direction even if the direction had been specified.
      643ee29b
  6. Jan 04, 2023
  7. Dec 28, 2022
  8. Dec 25, 2022
  9. Dec 21, 2022
  10. Dec 20, 2022
  11. Dec 19, 2022
  12. Dec 18, 2022
    • Schuyler Eldridge's avatar
      [circt] Cleanup CIRCT error behavior · f0838916
      Schuyler Eldridge authored
      
      
      Change the behavior of what happens if firtool returns a non-zero exit
      code from printing information to stdout to throwing an exception with
      this information in the body.  This is done primarily to ease
      interoperability with mdoc.  However, this is generally better
      principled than the previous behavior of scattering information in
      different mediums.  Add a test of this behavior.
      
      Stop intercepting a file not found error if CIRCT fails to print this to
      stdout and wrap this in a StageError.  It is better to just let the file
      not found exception through as this already includes all the information
      necessary to tell the user what the problem is.  Do not test this
      behavior (as it is tedious to test).
      
      Signed-off-by: default avatarSchuyler Eldridge <schuyler.eldridge@sifive.com>
      f0838916
  13. Dec 17, 2022
  14. Dec 14, 2022
  15. Dec 10, 2022
  16. Dec 08, 2022
    • Jack Koenig's avatar
      [ci] Update Github Actions (#2876) · b01dd3cb
      Jack Koenig authored
      * Switch from deprecated setup-scala to setup-java
      * Switch from deprecated set-output to $GITHUB_OUTPUT
      * Use $GITHUB_STEP_SUMMARY for reporting
      b01dd3cb
  17. Dec 07, 2022
    • Chick Markley's avatar
      Remove deprecated code from core (#2758) · 7372c9e2
      Chick Markley authored
      
      
      * Remove parenthesized forms of:
      `.unary_-()`, `.unary_%()`, `.unary_~()`, `.unary_!()`,
      `.orR()`, `.andR()`, `.xorR()`,  `.zext()`, 
      `.asBool()`, `.asBools()`, `.asSInt()`, `.asAsyncReset()`,
      `.asClock()`, `.isLit()`, `.litOption()`, `.litValue()`,
      `.abs()`
      * Remove protected `Data.bindingToString`
      * Remove `RawModule.getPorts`
      * Remove `._applyMacroWithMessage` in assert and assume
      * Remove `stop` that accepts non-zero return code
      * Remove public `WhenContext` constructor
      * Remove parenthesized `WhenContext.active()`
      * Remove `blacklistPackages`, `builderName`, and `chiselStackTrace` from `ChiselException`
      * Remove `MultiIOModule` (`Module` can have multiple `IOs`)
      * Remove `chisel3.getModulePorts`
      * Undo deprecation of `Data.flatten` which is package private and useful
      * Also remove all internal uses of these removed methods
      
      Co-authored-by: default avatarJack Koenig <koenig@sifive.com>
      7372c9e2
  18. Dec 06, 2022