Skip to content

Releases: llvm/circt

Firtool Release 1.33.0

03 Mar 12:28
ec49cbe
Compare
Choose a tag to compare
Pre-release

EDIT: firtool 1.33.0 has a known issue in canonicalizers which causes a complication failure so please use firtool 1.34.0.

What's Changed

Full Changelog: firtool-1.32.0...firtool-1.33.0

Firtool Release 1.32.0

24 Feb 21:35
Compare
Choose a tag to compare
Pre-release

Overview

  • Implement an iterative Tarjan's SCC to detect cycles
  • Fix insertion point for fieldID.
  • Bump LLVM to top-of-tree
  • Add a canonicalization to swap constant index and unknown index of array gets
  • Tweak suggested release tags, suggest firtool over sifive.
  • Handle all data-flow ops in FieldSource
  • Make DUT module public
  • Limit BitCast to passive output, fix non-passive input.
  • Handle port dontTouch, add inner sym.
  • Replace single-address memories with registers
  • Propapate bin flags through icmp and variadic op canonicalizer
  • Disable one folder for 25% end-to-end perf improvement.
  • Fixups to avoid memory safety issues.
  • Reduce dontTouch+zero-width error to warning.
  • Improve MacOS published binaries and flow
  • Allow wiring type-equivalent types.
  • Add disallowArrayIndexInlining option
  • Unshallow CIRCT clone in uploadBinaries workflow
  • Use port locations for diagnostics, don't dump module.
  • Add a workflow for building and uploading Python wheels.

What's Changed

  • [CheckCombCycles] Implement an iterative Tarjan's SCC to detect cycles by @prithayan in #4642
  • [ESI] Introduce pure_module.input and pure_module.output by @teqdruid in #4657
  • [ESI] Lower pure modules into HW modules by @teqdruid in #4658
  • [FIRRTL][LegacyWiring] Fix insertion point for fieldID. by @dtzSiFive in #4664
  • Bump LLVM to top-of-tree by @seldridge in #4666
  • [HW] Add a canonicalization to swap constant index and unknown index of array gets by @uenoku in #4668
  • [cmake] Tweak suggested release tags, suggest firtool over sifive. by @dtzSiFive in #4676
  • Handle all data-flow ops in FieldSource by @darthscsi in #4673
  • silence warning by @darthscsi in #4678
  • [LowerAnnotations] Make DUT module public by @uenoku in #4672
  • Fix Combinational Component Builder by @andrewb1999 in #4680
  • [FIRRTL] Limit BitCast to passive output, fix non-passive input. by @dtzSiFive in #4648
  • [LowerToHW] Handle port dontTouch, add inner sym. by @dtzSiFive in #4675
  • [MemOp] Replace single-address memories with registers by @nandor in #4687
  • [ESI] [mostly NFC] Lower ports pass refactoring by @teqdruid in #4670
  • [ESI] Initial FIFO signaling: read latency 0 style by @teqdruid in #4679
  • [CombFolds] Propapate bin flags through icmp and variadic op canonicalizer by @uenoku in #4695
  • [Arc] Add dialect by @fabianschuiki in #4681
  • [Handshake] Fix incorrect operation deletion in EliminateCBranchIntoMux canonicalization pattern by @RamirezLucas in #4650
  • [COMB] disable one folder for 25% end-to-end perf improvement. by @darthscsi in #4690
  • [FIRRTL][FoldMemRegs] Fixups to avoid memory safety issues. by @dtzSiFive in #4702
  • [LowerToHW] Reduce dontTouch+zero-width error to warning. by @dtzSiFive in #4703
  • Improve MacOS published binaries and flow by @jackkoenig in #4701
  • [LowerAnnotations] Allow wiring type-equivalent types. by @dtzSiFive in #4656
  • [ExportVerilog] Add disallowArrayIndexInlining option by @fabianschuiki in #4706
  • Unshallow CIRCT clone in uploadBinaries workflow by @jackkoenig in #4707
  • [LowerToHW] Use port locations for diagnostics, don't dump module. by @dtzSiFive in #4708
  • [PyCDE] Expose signaling and FIFO0 by @teqdruid in #4705
  • [CI] Add a workflow for building and uploading Python wheels. by @mikeurbach in #4710
  • [ESI] Add parameters to PureModule lowering by @teqdruid in #4711

Full Changelog: firtool-1.31.0...firtool-1.32.0

Firtool Release 1.31.0

15 Feb 19:54
1149618
Compare
Choose a tag to compare
Pre-release

What's Changed

  • Bump llvm to 78056e2f2d9510d2ace42fe7e9eb60e5abe8a3e7 by @rwy7 in #4645
  • [FIRRTL][MemOp] Removed unused bits from memories by @nandor in #4652
  • [LowerTypes] Track public modules and force lowering properly by @uenoku in #4655
  • [ESI] Add specification to build signals into SV interface or not by @teqdruid in #4653

Full Changelog: firtool-1.30.0...firtool-1.31.0

Firtool Release 1.30.0

10 Feb 23:05
db40efb
Compare
Choose a tag to compare
Pre-release

What's Changed

New Contributors

Full Changelog: firtool-1.29.0...firtool-1.30.0

Firtool Release 1.29.0

02 Feb 05:51
Compare
Choose a tag to compare
Pre-release

What's Changed

New Contributors

Full Changelog: firtool-1.28.0...firtool-1.29.0

SiFive Internal Release 1.5.4

25 Jan 11:55
e443c0e
Compare
Choose a tag to compare
Pre-release

What's Changed

  • Backport "[LowerToHW] Add extra guards to header macros (#4469)" to sifive-1.5 by @uenoku in #4581

Full Changelog: sifive/1/5/3...sifive/1/5/4

SiFive Internal Release 1.22.4

25 Jan 11:34
cb96f48
Compare
Choose a tag to compare
Pre-release

What's Changed

  • Backport "[LowerToHW] Add extra guards to header macros (#4469)" to sifive 1.22 by @uenoku in #4580

Full Changelog: sifive/1/22/3...sifive/1/22/4

Firtool Release 1.28.0

24 Jan 19:06
cd0cae2
Compare
Choose a tag to compare
Pre-release

Summary

  • Users can specify an include path to firtool using --include-dir <directory> as the long form of -I
  • The FIRRTL parser no longer overrides port locations with module locations

What's Changed

  • [FIRRTL] Use circuit location for annotation file parse errors. by @dtzSiFive in #4541
  • [FIRRTL] Move FVectorType to ODS by @rwy7 in #4534
  • [PyCDE] Add ControlReg construct by @teqdruid in #4536
  • [FIRRTL] Move BundleType to ODS by @rwy7 in #4535
  • [Python] Use the "private namespace" approach for mlir dep by @teqdruid in #4546
  • [PyCDE][NFC] Hide the circt package in our namespace by @teqdruid in #4545
  • [StandardToHandshake] Replace liveness analysis with SSA maximization by @RamirezLucas in #4520
  • [PyCDE] Value -> Signal by @teqdruid in #4550
  • [GC] Fail pass if emit errors about companion instantiation. by @dtzSiFive in #4552
  • [FIRRTL] Mark DUT AddSeqMemPorts ports dontTouch by @seldridge in #4554
  • [FIRRTL] Change FIRRTL fieldID fns to use uint64_t by @seldridge in #4528
  • [CMake] Fix option CIRCT_LLHD_SIM_ENABLED by @SpriteOvO in #4555
  • [FIRRTL] Move SIntType and UIntType to ODS by @rwy7 in #4529
  • [PyCDE] Change module API to extend Module instead of using a decorator by @teqdruid in #4556
  • [FIRRTL] Move enum attributes to dedicated td file by @rwy7 in #4562
  • [SSP] Support OR-Tools-based schedulers in -ssp-schedule by @jopperm in #4525
  • [Scheduling] Rewrite tests in SSP IR by @jopperm in #4523
  • [Scheduling] Rewrite tests for OR-Tools-based schedulers in SSP IR by @jopperm in #4524
  • [NFC] Document verilog baseline assumed for consuming tools by @darthscsi in #4575
  • [Scheduling] Purge test passes. by @jopperm in #4572
  • [firtool] Add --include-dir option, -I as alias. by @dtzSiFive in #4576
  • [CI] Bump integration test images. by @jopperm in #4571
  • [ExportVerilog] Move local name legalization to pre-pass by @uenoku in #4573
  • [LowerTypes] Fix a race condition by @uenoku in #4582

Full Changelog: firtool-1.27.0...firtool-1.28.0

Firtool Release 1.27.0

13 Jan 00:34
54c8354
Compare
Choose a tag to compare
Pre-release

Summary

  • Now users can specify an include path to firtool using -I<directory>. FIRRTL will use this path to locate sources when loading files or reporting errors.

What's Changed

  • [FIRRTL][CheckCombLoops] Reformat the lit tests. NFC by @prithayan in #4527
  • [FIRRTL][CheckCombLoops] Handle scalar to Aggregate paths by @prithayan in #4526
  • [Handshake] Fix iteration-over-modified-range bug in ControlMergeOp canonicalizer by @mortbopet in #4531
  • [PyCDE] Separate BitVectors into Integers vs. Bits by @teqdruid in #4530
  • [firtool] Add include directory flag by @dtzSiFive in #4539

Full Changelog: firtool-1.26.0...firtool-1.27.0

Firtool Release 1.26.0

10 Jan 08:50
0cf02d2
Compare
Choose a tag to compare
Pre-release

Summary

  • The tag name is renamed from sifive/ to firtool-
  • Improved analog connection lowering
  • A new combinatorial logic loop detection pass was merged
  • Mux pragmas are stripped by default
  • Extra guards to header macros
  • SymbolDCE is moved to the later pipeline
  • Bug fixes (IMCP invalid flow creation, ETC creates null operands)
  • More aggregate preservation work

What's Changed

  • Correct typos in ExpandWhens.cpp by @SpriteOvO in #4361
  • [LowerXMR] Emit hierpathop's as private, so they can be removed if unused by @dtzSiFive in #4461
  • [Scheduling] Overhaul simplex-based modulo scheduler. by @jopperm in #4426
  • LLVM Bump by @nandor in #4463
  • [LLHD] Install llhd-sim utility ### (when enabled). by @dtzSiFive in #4464
  • [LowerToHW] Lower aggregate constant by @uenoku in #4451
  • Revert "[LowerToHW] Lower aggregate constant" by @uenoku in #4465
  • [FIRRTL] Simplify internal Analog connections by @tymcauley in #4466
  • [FIRRTL] Fix InstanceOp Unknown Attribute Copying by @seldridge in #4468
  • [CI] uploadBinaries.yml: Temporarily change 20.04 compiler to 12. by @dtzSiFive in #4475
  • [CI] uploadBinaries: allow workflow_dispatch, test what we publish, drop cache by @dtzSiFive in #4474
  • [NFC] small touchups before LLVM bump by @dtzSiFive in #4476
  • [LowerToHW] Add extra guards to header macros by @uenoku in #4469
  • [StandardToHandshake] Remove intermediate conversion ops by @RamirezLucas in #4480
  • LLVM bump: move almost entirely to std::optional, fixes by @dtzSiFive in #4470
  • [LowerSeqToSV] Initialize register element individually by @uenoku in #4478
  • [ExportVerilog] Regard dead expressions as inlinable by @uenoku in #4486
  • [SV] Mark SampledOp Pure by @uenoku in #4487
  • [Seq] Create new clock enabled register op by @teqdruid in #4495
  • [llvm] Bump LLVM to latest by @seldridge in #4491
  • [PrepareForEmission] Handle twoState flags in variadic op lowerings by @uenoku in #4490
  • [PyCDE] Improve Reg construct by @teqdruid in #4497
  • [Pipeline] Add linear pipeline scheduling pass by @mortbopet in #4216
  • [firtool] Strip mux pragmas by default, NFC by @uenoku in #4501
  • [FIRRTL] remove GrandCentralSignalMapping pass + tests. by @dtzSiFive in #4505
  • [firtool] Run SymbolDCE as late as possible. by @mikeurbach in #4504
  • [FIRRTL] Handle Nodes in getDeclName. NFC. by @prithayan in #4512
  • [FIRRTL][CheckCombCycles] Add a new pass to check for comb loops by @prithayan in #4368
  • Bump LLVM by @youngar in #4511
  • [LowerTypes] Force type lowering of ref type operations to fix memtap type mismatch by @uenoku in #4509
  • [ExportVerilog] Inline bitcast op when only used by concat by @uenoku in #4493
  • [Seq] Replace unitialized array elements of firreg with constant zero by @uenoku in #4510
  • [CI] Enable statistics when building binaries for releases. by @dtzSiFive in #4515
  • [FIRRTL][CheckCombLoops] Fix performance regression. by @prithayan in #4521
  • [FIRRTL][CheckCombLoops] Switch to the new pass checkCombLoops instead of checkCombCycles by @prithayan in #4513

New Contributors

Full Changelog: sifive/1/25/0...firtool-1.26.0