[FIRRTL][CheckCombLoops] Missing RWProbeOp support, crashes
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 524
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
Example FIRRTL:
```
FIRRTL version 3.3.0
circuit Bar :
module Foo :
input clock : Clock
output clockProbe_bore : RWProbe
define clockProbe_bore = rwprobe(clock)
module Bar :
input clock : Clock
output clockProbe : RWProbe
inst foo of Foo
connect foo.clock, clock
define clockProbe = foo.clockProbe_bore
force(clock, UInt<1>(1), clockProbe, asClock(UInt<1>(0)))
```
`--parse-only`:
```
firrtl.circuit "Bar" {
firrtl.module private @Foo(in %clock: !firrtl.clock sym @sym, out %clockProbe_bore: !firrtl.rwprobe) {
%0 = firrtl.ref.rwprobe <@Foo::@sym> : !firrtl.rwprobe
firrtl.ref.define %clockProbe_bore, %0 : !firrtl.rwprobe
}
firrtl.module @Bar(in %clock: !firrtl.clock, out %clockProbe: !firrtl.rwprobe) attributes {convention = #firrtl} {
%foo_clock, %foo_clockProbe_bore = firrtl.instance foo @Foo(in clock: !firrtl.clock, out clockProbe_bore: !firrtl.rwprobe)
firrtl.strictconnect %foo_clock, %clock : !firrtl.clock
firrtl.ref.define %clockProbe, %foo_clockProbe_bore : !firrtl.rwprobe
%c1_ui1 = firrtl.constant 1 : !firrtl.uint<1>
%c0_ui1 = firrtl.constant 0 : !firrtl.uint<1>
%0 = firrtl.asClock %c0_ui1 : (!firrtl.uint<1>) -> !firrtl.clock
firrtl.ref.force %clock, %c1_ui1, %clockProbe, %0 : !firrtl.clock, !firrtl.uint<1>, !firrtl.clock
}
}
```
Crashes (or assert failure) when trying to resolve the force.
Flagged in review: https://github.com/llvm/circt/pull/5647#discussion_r1362126296 .
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.