Skip to content

[FIRRTL] Lower Classes Assertion Firing #10959

Description

@seldridge

I ran into the following assertion failure in LowerClasses:

firrtl.circuit "Foo" {
  firrtl.memmodule @Bar(
    in W0_clk: !firrtl.clock
  ) attributes {
    dataWidth = 8 : ui32,
    depth = 8 : ui64,
    extraPorts = [],
    maskBits = 1 : ui32,
    numReadPorts = 0 : ui32,
    numReadWritePorts = 0 : ui32,
    numWritePorts = 1 : ui32,
    readLatency = 1 : ui32,
    ruw = #firrtl<ruwbehavior Undefined>,
    writeLatency = 1 : ui32
  }
  firrtl.extmodule @Foo()
}
# circt-opt reduced.mlir -firrtl-lower-classes
Assertion failed: (!NodePtr->isKnownSentinel()), function operator*, file ilist_iterator.h, line 168.
PLEASE submit a bug report to https://github.com/llvm/circt and include the crash backtrace.
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  circt-opt                0x0000000102cea234 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  circt-opt                0x0000000102ce7e40 llvm::sys::RunSignalHandlers() + 204
2  circt-opt                0x0000000102cead40 SignalHandler(int, __siginfo*, void*) + 328
3  libsystem_platform.dylib 0x0000000180e93744 _sigtramp + 56
4  libsystem_pthread.dylib  0x0000000180e898d8 pthread_kill + 296
5  libsystem_c.dylib        0x0000000180d90644 abort + 148
6  libsystem_c.dylib        0x0000000180d8f8a0 err + 0
7  circt-opt                0x0000000105335d5c llvm::yaml::Scanner::peekNext() (.cold.4) + 0
8  circt-opt                0x00000001034b3d04 auto void mlir::parallelForEach<llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, (anonymous namespace)::LowerClassesPass::runOnOperation()::$_1>(mlir::MLIRContext*, llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, (anonymous namespace)::LowerClassesPass::runOnOperation()::$_1&&)::'lambda'(llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>&&)::operator()<llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>&>(llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>&&) const + 3648
9  circt-opt                0x00000001034b415c llvm::detail::UniqueFunctionBase<void>::UniqueFunctionBase<llvm::LogicalResult mlir::failableParallelForEach<llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, void mlir::parallelForEach<llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, (anonymous namespace)::LowerClassesPass::runOnOperation()::$_1>(mlir::MLIRContext*, llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, (anonymous namespace)::LowerClassesPass::runOnOperation()::$_1&&)::'lambda'(llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>&&)>(mlir::MLIRContext*, llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, (anonymous namespace)::LowerClassesPass::runOnOperation()::$_1&&)::'lambda'(), llvm::LogicalResult mlir::failableParallelForEach<llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, void mlir::parallelForEach<llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, (anonymous namespace)::LowerClassesPass::runOnOperation()::$_1>(mlir::MLIRContext*, llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, (anonymous namespace)::LowerClassesPass::runOnOperation()::$_1&&)::'lambda'(llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>&&)>(mlir::MLIRContext*, llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, (anonymous namespace)::LowerClassesPass::runOnOperation()::$_1&&)::'lambda'()>(llvm::DenseMapIterator<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState, llvm::DenseMapInfo<circt::om::ClassLike, void>, llvm::detail::DenseMapPair<circt::om::ClassLike, (anonymous namespace)::ClassLoweringState>, false>, llvm::detail::UniqueFunctionBase<void>::CalledAs<(anonymous namespace)::LowerClassesPass::runOnOperation()::$_1>)::'lambda'(llvm::detail::UniqueFunctionBase<void> const*)::__invoke(llvm::detail::UniqueFunctionBase<void> const*) + 368
10 circt-opt                0x00000001033fcf14 std::__1::__deferred_assoc_state<void, std::__1::__async_func<llvm::unique_function<void ()>>>::__execute() + 28
11 libc++.1.dylib           0x0000000180dc0114 std::__1::__assoc_sub_state::wait() + 56
12 circt-opt                0x0000000102c9706c llvm::StdThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) + 872
13 circt-opt                0x0000000102c98a00 void* llvm::thread::ThreadProxy<std::__1::tuple<llvm::StdThreadPool::grow(int)::$_0>>(void*) + 148
14 libsystem_pthread.dylib  0x0000000180e89c58 _pthread_start + 136
15 libsystem_pthread.dylib  0x0000000180e84c1c thread_start + 8
zsh: abort      circt-opt reduced.mlir -firrtl-lower-classes

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    FIRRTLInvolving the `firrtl` dialectbugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions