Comments (1)
I've made some progress on this issue, and the reason for the crash is that the calyx.seq in the if structure is empty, and the pattern checking mechanism isn't strict enough, causing the crash when fetching the last op in the seq. After fixing this issue, a new problem arose.Apparently calyx.control is empty after canonicalize, which is the exact reason.
test.mlir:2:3: note: see current operation:
"calyx.component"() ({
^bb0(%arg0: i1, %arg1: i1, %arg2: i1, %arg3: i1):
%0:6 = "calyx.register"() {sym_name = "r"} : () -> (i1, i1, i1, i1, i1, i1)
"calyx.wires"() ({
^bb0:
}) : () -> ()
"calyx.control"() ({
^bb0:
}) : () -> ()
}) {function_type = (i1, i1, i1, i1) -> (), portAttributes = [{go}, {clk}, {reset}, {done}], portDirections = -8 : i4, portNames = ["go", "clk", "reset", "done"], sym_name = "main"} : () -> ()
I think the contents of calyx.control need to be scrutinized more closely, if there is no execute semantics in it, an error should be reported, it is too late to report an error after canonicalize.
from circt.
Related Issues (20)
- [FIRRTL] CheckCombLoops: does not find all comb loops
- [FIRRTL][LowerLayers] Analyze instances and conservatively don't sink them if not safe HOT 1
- [Docs][FIRRTL] Missing intrinsic ops docs
- [ESI] Add readable `__version__` attribute to esiaccel package
- [FIRRTL] extmodule's supporting enablelayer? HOT 1
- [FIRRTL] layer-enable attribute verifier allows module as layer symbol
- [FIRRTL] Layer Sink can sink subfield which is "non passive"
- [ESI][Runtime] Teardown: memory ownership
- [SimToSV] Add includes guard to SV import
- [ExportVerilog] [SV] Open array raw data is not accessible from verilator HOT 1
- [FIRRTL][Layers] ref.send is rejected but is always passive capture HOT 2
- [FIRRTL][LowerSignatures] Const is dropped, breaking IR HOT 1
- Crash in circt-verilog: Assertion `succeeded(result) && "expected ConstantLike op to be foldable"' failed. HOT 1
- circt-verilog: failed to legalize operation 'moore.variable' HOT 3
- [Verif][Sim][Feature] Inline Simulation Tests
- [Moore] Redesign `wait_event` operation
- [Moore] Mem2Reg Error
- [ExportVerilog] Pass should fail if any failure occurs while running HOT 3
- [FIRRTL] Tighten Layerblock Checking of Writes Outside the Layerblock
- [FIRRTL][LowerLayers] ref.send capture of non-passive doesn't work
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from circt.