Will Dietz
Will Dietz
Specifying various `-preserve-values=` options (default is 'none' presently) does change the option but not as expected: ``` $ ./bin/firtool ./test.fir -verbose-pass-executions -preserve-values=none |& grep -o "drop-names{preserve-values=[^}]\+}" drop-names{preserve-values=named} drop-names{preserve-values=named} drop-names{preserve-values=named} drop-names{preserve-values=named}...
Noticed this while adding statistics, here's a small test case `names-cse.fir`: ```firrtl circuit Names: module Names: input i: UInt input j: UInt output o: UInt wire w: UInt wire w2:...
## Summary Dedup pass appears to still have a safety issue re:early-inc/post-order iterators over a mutated instance graph. Ran into this using a recent (post-1.4.0) firtool, reported by ASAN. ##...
This started with a module definition at the wrong indentation level-- we currently we accept "FIRRTL" like this: ```scala circuit Oops: module Oops: input in: UInt input out: UInt wire...
These show up in our CI as well as in local builds, for example: ``` /__w/circt/circt/tools/circt-reduce/Reduction.cpp:78:21: warning: 'Optional' may not intend to support class template argument deduction [-Wctad-maybe-unsupported] return moduleOp...
Slightly friendlier behavior re:what users expect. Also, handle case when this name conflicts with existing port name (by detecting and generating new name for that module specifically). Update test, add...
`llvm_unreachable` in release builds instructs the compiler that it is, in fact, unreachable (UB if reached). As a result, this can result in rather unexpected situations if it ever becomes...
As of 1.1.0, version preamble is required for FIRRTL files. Include an appropriate version string when emitting FIRRTL so it may be parsed by tools expecting it.
While the ccache is small for this (< 100MB), it runs on every commit and saves the updated ccache with the date. These add up, and contribute to our cache...
Example: ```mlir firrtl.module private @dead_ref_local(in %source: !firrtl.uint, out %dest: !firrtl.ref) { %ref_source = firrtl.ref.send %source: !firrtl.uint firrtl.connect %dest, %ref_source : !firrtl.ref, !firrtl.ref %unused = firrtl.ref.resolve %dest : !firrtl.ref } ```...