-
Notifications
You must be signed in to change notification settings - Fork 389
Comparing changes
Open a pull request
base repository: llvm/circt
base: firtool-1.81.0
head repository: llvm/circt
compare: firtool-1.81.1
- 16 commits
- 62 files changed
- 7 contributors
Commits on Aug 10, 2024
-
[Moore] Fix mem2reg implementation (#7498)
Fix a few issues in the mem2reg interface implementations of VariableOp, ReadOp, and BlockingAssignOp. Add tests reduced from the Snitch core that used to fail before this fix.
Configuration menu - View commit details
-
Copy full SHA for 49c82be - Browse repository at this point
Copy the full SHA 49c82beView commit details -
Configuration menu - View commit details
-
Copy full SHA for 62cd9ac - Browse repository at this point
Copy the full SHA 62cd9acView commit details -
[calyx] fix calyx canonicalization. (#7456)
* add calyx canonicalization. * Added more checks to calyx.component, fix some details. * update CmakeLists.txt. * Update lib/Dialect/Calyx/CalyxOps.cpp Optimized code. Co-authored-by: Chris Gyurgyik <[email protected]> * Update lib/Dialect/Calyx/CalyxOps.cpp Optimize error reporting. Co-authored-by: Chris Gyurgyik <[email protected]> * use clang-format and add calyx.par test. * Optimised code. --------- Co-authored-by: Chris Gyurgyik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 286e73e - Browse repository at this point
Copy the full SHA 286e73eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d207a3 - Browse repository at this point
Copy the full SHA 9d207a3View commit details -
[MooreToCore] Support four-valued VariableOp without init (#7502)
Initialize `VariableOp`s of a four-valued type with a zero. This is in line with the rest of `MooreToCore` which maps all X/Z to zero at the moment, either implicitly by mapping to `comb.*` ops, or explicitly by conjuring up zero constants.
Configuration menu - View commit details
-
Copy full SHA for 43608be - Browse repository at this point
Copy the full SHA 43608beView commit details -
[MooreToCore] Support ConditionalOp (#7501)
Add a lowering pattern from `moore.conditional` to `scf.if`. This currently relies on the condition being a two-valued integer after lowering. Once we support four-valued integers at the core dialect level, the lowering of `moore.conditional` will become a lot more complicated.
Configuration menu - View commit details
-
Copy full SHA for 4240103 - Browse repository at this point
Copy the full SHA 4240103View commit details -
[MooreToCore] Support CaseZEq and CaseXZEq ops (#7503)
Add a conversion for `moore.casez_eq` and `moore.casexz_eq` operations. These only really make sense if the operands are four-valued integers, since the X and Z bits indicate which bits to ignore during the equality check. We don't have support for four-valued integers in the core dialects yet. However, the vast majority of uses of this op are comparing an SSA value against a `moore.constant`. This case we can handle properly by looking at the constant, identifying the unknown bits, and then masking them before performing a regular two-valued comparison between the two operands.
Configuration menu - View commit details
-
Copy full SHA for e871e0b - Browse repository at this point
Copy the full SHA e871e0bView commit details -
[LLHD] Add
llhd.delayoperation (#7505)Add an operation that delays the propagation of value changes from its input to its output. This allows mem2reg of LLHD signals with a unique driver with a delay. For example ``` %sig = llhd.sig llhd.drv %sig, %val after <1ns, 0d, 0e> %res = llhd.prb %sig ``` can become ``` %res = llhd.delay %val by <1ns, 0d, 0e> ```
Configuration menu - View commit details
-
Copy full SHA for a250818 - Browse repository at this point
Copy the full SHA a250818View commit details
Commits on Aug 11, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ac8c3a1 - Browse repository at this point
Copy the full SHA ac8c3a1View commit details -
LLHD's `reg` operation dates back to when the `seq` dialect was not a thing yet. It has the disadvantage that * it only works with `inout` values * while it can model all kinds of registers and latches you can think of, more than is actually used/necessary in practice, it is very complicated to work with Instead of having this operation, we can * use the seq registers * if we need to work with inout values, we can continuously drive the seq register output to the signal with an additional `llhd.drv` operation * If some state element occurs frequently for which we don't have an operation in the seq dialect, we can add one there specifically for that kind of element (e.g., a latch?) * the `lllhd.reg` operation can specify triggers with different clocks. The most common case are async resets which we also support in the seq dialect. Other, more weird constructs could also just be left in the `llhd.process` based representation. We need to support them in simulation and verilog export anyway. Alternatively, we could also decompose it to the bare logic gates with feedback loops directly, don't know why that would be necessary though.
Configuration menu - View commit details
-
Copy full SHA for 08fd04f - Browse repository at this point
Copy the full SHA 08fd04fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 22eb6b5 - Browse repository at this point
Copy the full SHA 22eb6b5View commit details
Commits on Aug 12, 2024
-
[ESI][Manifest] Embed constants in manifest (#7489)
Users want to know what constants were used in a design. Plumb them through using the manifest. No runtime support, no pycde support. Cleanups to the manifest as well. Update the runtime to support the schema changes to the manifest.
Configuration menu - View commit details
-
Copy full SHA for 3af0079 - Browse repository at this point
Copy the full SHA 3af0079View commit details -
[CreateSifiveMetadata] Update memory hierarchy paths to be pre-extrct…
…ion (#7491) The `CreateSifiveMetadata` pass was creating hierarchy paths to the memory module pre-extraction. The `om.path` was being updated as the memory was extracted in the following passes. But recently we realized this was a bug, as the downstream tools consuming the metadata files, were actually expecting the pre-extraction hierarchy paths to the memory. This PR fixes the path, to terminate at the parent of the module that instantiates the memory and encodes the pre-extraction memory instance as a string. The tool that will parse the final `mlir` must now construct the actual pre-extraction path from the two lists, by appending the pre-extraction instance name to the path.
Configuration menu - View commit details
-
Copy full SHA for 736142c - Browse repository at this point
Copy the full SHA 736142cView commit details -
[ESI][Runtime] Parse and expose manifest constants (#7492)
Access per-module constants from the ModuleInfo class.
Configuration menu - View commit details
-
Copy full SHA for 128d91e - Browse repository at this point
Copy the full SHA 128d91eView commit details -
[PyCDE] Fixing integration tests
- Don't check the type compatibility until `connect()` time. - Account for the extra symbols.
Configuration menu - View commit details
-
Copy full SHA for e672d0e - Browse repository at this point
Copy the full SHA e672d0eView commit details -
[OM] Add list concatenation operation. (#7487)
This operation produces a list by concatenating lists of the same type. The operation definition and a simple round trip test have been added. This is used to compose lists, which is a key feature to enable hierarchical composition of OM values.
Configuration menu - View commit details
-
Copy full SHA for 689c0a4 - Browse repository at this point
Copy the full SHA 689c0a4View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff firtool-1.81.0...firtool-1.81.1