circt/lib
Schuyler Eldridge b31ce1e65a
[FIRRTL] Add RemoveResets Pass (#2287)
Add a new pass, RemoveResets, that replaces RegResetOps that have
invalidated initialization values with RegOps.  This is part of a series
of patches that are intended to align CIRCT with the Scala FIRRTL
Compiler (SFC) interpretation of invalid.  Previously, CIRCT relies on
canonicalization/folding of invalid values to do this optimization.
This pass enables future canonicalization/folding of invalid values to
zero (as the SFC does) without having to worry about performing this
optimization.

Run the RemoveResets pass as part of firtool after ExpandWhens and
before the first canonicalization.  This enables conversion of
invalidated RegResetOps to RegOps before canonicalization (eventually)
interprets invalid values as zero.

Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
2021-12-06 16:13:27 -05:00
..
Analysis [Scheduling] Get problem instances via factory methods. (#2227) 2021-11-30 09:53:49 +01:00
Bindings Fix the integrations tests broken by "[Comb] Remove the now-unused comb.sext operator." 2021-12-03 07:31:37 +00:00
CAPI [LLHD] Add time attribute C API 2021-11-21 13:11:47 +01:00
Conversion [ExportVerilog] Implement `sv.namehint` (#2281) 2021-12-03 14:10:22 -08:00
Dialect [FIRRTL] Add RemoveResets Pass (#2287) 2021-12-06 16:13:27 -05:00
Scheduling LLVM Submodule Update (#2225) 2021-12-01 00:14:17 -05:00
Support [Support] Add APInt Utilities, NFC 2021-12-01 18:05:24 -05:00
Transforms [Transforms] Add --flatten-memref-calls pass (#2257) 2021-12-02 10:49:07 +00:00
CMakeLists.txt [Transforms] add a `memref` flattening pass (#2230) 2021-11-24 21:38:18 +00:00