circt
circt copied to clipboard
Circuit IR Compilers and Tools
This commit fixes a corner-case, where a memory module itself is not effectful, but it is connected to an effectful *ext* memory module. If we simply mark all memory modules...
As of the submodule bump last week, PyCDE is broken since `_clear_live_operations` was deleted. See my comment here: https://github.com/llvm/llvm-project/pull/155114#issuecomment-3326079910 This is not strictly necessary so the fix is to just...
When running the latest firtool with both `--export-module-hierarchy` and `--repl-seq-mem` flags, the sram names transformation might only happen in one place. This manifests as in the smems.conf, there is only...
UnusedOpPruner removes block arguments but it's not generally legal, e.g. HW module requires the module type is consistent with block arguments https://github.com/llvm/circt/blob/9e689e91121f5b70440354eac789c3ff6c164f24/include/circt/Support/UnusedOpPruner.h#L69-L87
The `InstanceGraph` implements `llvm::GraphTraits`. That uses `getTopLevelNode()` as the root node of the graph, which does not contain all modules in the instance graph. Instead, the behaviour is dependent on...
Sorry for the code dump. I will split this up into more manageable PRs when I have the time. I just want to get this out of the door in...
```sv module Foo(input [2:0] c, output out); assign out = c == 8'h1 | c == 8'h3 | c == 8'h5 | c == 8'h7 ; endmodule ``` This is...
Is there a strong reason to go from PowUOp to math.ipow as opposed to lowering to a sequence of multiplications? Is there any existing lowering from math.ipow to the core...
I'm trying to build circt from the main branch and get this error: ``` build/tools/circt/include/circt/Dialect/SV/SV.h.inc:8517:287: error: no member named 'ArgAndResultAttrsOpInterface' in namespace 'mlir' ``` The build command: ``` cmake -G...
Implement local rewrite pattern based on MIG Boolean Algebra section in https://ieeexplore.ieee.org/document/7293649. ``` // Folder maj_inv(x, !x, y) -> y maj_inv(x, x, y) -> x maj_inv(x, 0, 1) -> x...