-
Notifications
You must be signed in to change notification settings - Fork 15.4k
Open
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]mlir:linalg
Description
git version: 56600c1
system: Ubuntu 18.04.6 LTS
reproduce with: mlir-opt a.mlir --test-linalg-greedy-fusion
a.mlir:
#map = affine_map<(d0, d1) -> (d0, d1)>
module {
func.func private @printMemrefI32(tensor<*xi32>)
func.func private @printMemrefF32(tensor<*xf32>)
func.func private @main() {
%0 = llvm.mlir.constant(1 : i32) : i32
%1 = llvm.mlir.constant(0 : i32) : i32
%2 = llvm.mlir.constant(7673 : i32) : i32
%6 = llvm.mlir.constant(-1 : i32) : i32
%cst = arith.constant dense<0> : tensor<30x8xi32>
%7 = llvm.mlir.constant(0 : i64) : i64
%8 = builtin.unrealized_conversion_cast %7 : i64 to index
%10 = tensor.empty() : tensor<30x8xi32>
%11 = linalg.generic {indexing_maps = [#map], iterator_types = ["parallel", "parallel"]} outs(%10 : tensor<30x8xi32>) {
^bb0(%out: i32):
%45 = llvm.xor %2, %6 : i32
linalg.yield %45 : i32
} -> tensor<30x8xi32>
%13 = tensor.empty() : tensor<30x8xi1>
cf.br ^bb1(%cst : tensor<30x8xi32>)
^bb1(%19: tensor<30x8xi32>): // 2 preds: ^bb0, ^bb2
%20 = linalg.generic {indexing_maps = [#map, #map], iterator_types = ["parallel", "parallel"]} ins(%19 : tensor<30x8xi32>) outs(%13 : tensor<30x8xi1>) {
^bb0(%in: i32, %out: i1):
%45 = llvm.icmp "sgt" %1, %in : i32
linalg.yield %45 : i1
} -> tensor<30x8xi1>
%extracted = tensor.extract %20[%8, %8] : tensor<30x8xi1>
cf.cond_br %extracted, ^bb2, ^bb3
^bb2: // pred: ^bb1
%26 = linalg.generic {indexing_maps = [#map, #map], iterator_types = ["parallel", "parallel"]} ins(%19 : tensor<30x8xi32>) outs(%10 : tensor<30x8xi32>) {
^bb0(%in: i32, %out: i32):
%45 = llvm.add %in, %0 : i32
linalg.yield %45 : i32
} -> tensor<30x8xi32>
cf.br ^bb1(%26 : tensor<30x8xi32>)
^bb3: // pred: ^bb1
%extracted_slice_0 = tensor.extract_slice %11[7, 4] [5, 4] [1, 1] : tensor<30x8xi32> to tensor<5x4xi32>
%32 = tensor.empty() : tensor<5x4xi32>
%33 = tensor.empty() : tensor<1x5x4xi32>
%34 = tensor.empty() : tensor<5x4xi1>
%35 = linalg.generic {indexing_maps = [#map, #map], iterator_types = ["parallel", "parallel"]} ins(%extracted_slice_0 : tensor<5x4xi32>) outs(%34 : tensor<5x4xi1>) {
^bb0(%in: i32, %out: i1):
%45 = llvm.icmp "eq" %in, %1 : i32
linalg.yield %45 : i1
} -> tensor<5x4xi1>
%36 = linalg.generic {indexing_maps = [#map, #map, #map], iterator_types = ["parallel", "parallel"]} ins(%extracted_slice_0, %35 : tensor<5x4xi32>, tensor<5x4xi1>) outs(%32 : tensor<5x4xi32>) {
^bb0(%in: i32, %in_6: i1, %out: i32):
%45 = llvm.select %in_6, %0, %in : i1, i32
linalg.yield %45 : i32
} -> tensor<5x4xi32>
%37 = linalg.generic {indexing_maps = [#map, #map, #map], iterator_types = ["parallel", "parallel"]} ins(%extracted_slice_0, %36 : tensor<5x4xi32>, tensor<5x4xi32>) outs(%32 : tensor<5x4xi32>) {
^bb0(%in: i32, %in_6: i32, %out: i32):
%45 = llvm.sdiv %in, %in_6 : i32
linalg.yield %45 : i32
} -> tensor<5x4xi32>
%inserted_slice_1 = tensor.insert_slice %37 into %33[0, 0, 0] [1, 5, 4] [1, 1, 1] : tensor<5x4xi32> into tensor<1x5x4xi32>
%38 = tensor.empty() : tensor<30x8xf32>
%39 = linalg.generic {indexing_maps = [#map, #map], iterator_types = ["parallel", "parallel"]} ins(%19 : tensor<30x8xi32>) outs(%38 : tensor<30x8xf32>) {
^bb0(%in: i32, %out: f32):
%45 = llvm.sitofp %in : i32 to f32
linalg.yield %45 : f32
} -> tensor<30x8xf32>
%40 = linalg.generic {indexing_maps = [#map, #map], iterator_types = ["parallel", "parallel"]} ins(%39 : tensor<30x8xf32>) outs(%38 : tensor<30x8xf32>) {
^bb0(%in: f32, %out: f32):
%45 = llvm.intr.floor(%in) : (f32) -> f32
linalg.yield %45 : f32
} -> tensor<30x8xf32>
%cast = tensor.cast %40 : tensor<30x8xf32> to tensor<*xf32>
call @printMemrefF32(%cast) : (tensor<*xf32>) -> ()
%cast_3 = tensor.cast %inserted_slice_1 : tensor<1x5x4xi32> to tensor<*xi32>
call @printMemrefI32(%cast_3) : (tensor<*xi32>) -> ()
return
}
}
stack trace:
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
#0 0x000055730697b799 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:11
#1 0x000055730697bc4b PrintStackTraceSignalHandler(void*) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
#2 0x0000557306979e7f llvm::sys::RunSignalHandlers() /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Signals.cpp:105:5
#3 0x000055730697c31e SignalHandler(int) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
#4 0x00007ff6b48c0420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#5 0x0000557306ad7646 mlir::TypeStorage::getAbstractType() /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/TypeSupport.h:173:5
#6 0x0000557306ad75f8 mlir::Type::getTypeID() /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Types.h:117:37
#7 0x0000557306aebab5 bool mlir::detail::StorageUserBase<mlir::IntegerType, mlir::Type, mlir::detail::IntegerTypeStorage, mlir::detail::TypeUniquer>::classof<mlir::Type>(mlir::Type) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:113:16
#8 0x0000557306aeba8d llvm::CastInfo<mlir::IntegerType, mlir::Type const, void>::isPossible(mlir::Type) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Types.h:423:7
#9 0x0000557306e0ab7d llvm::DefaultDoCastIfPossible<mlir::IntegerType, mlir::Type const, llvm::CastInfo<mlir::IntegerType, mlir::Type const, void>>::doCastIfPossible(mlir::Type) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/Support/Casting.h:311:9
#10 0x0000557306df7f08 decltype(auto) llvm::dyn_cast<mlir::IntegerType, mlir::Type>(mlir::Type const&) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/Support/Casting.h:651:10
#11 0x000055730c5f9e68 mlir::Type::isSignlessInteger(unsigned int) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/IR/Types.cpp:82:20
#12 0x000055730c45d00e mlir::IntegerAttr::get(mlir::Type, llvm::APInt const&) /data/szy/MLIR/llvm-debug/llvm-project/build/tools/mlir/include/mlir/IR/BuiltinAttributes.cpp.inc:369:12
#13 0x000055730c45141a mlir::Builder::getIndexAttr(long) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/IR/Builders.cpp:149:10
#14 0x0000557306d2d5d6 mlir::arith::ConstantIndexOp::build(mlir::OpBuilder&, mlir::OperationState&, long) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Arith/IR/ArithOps.cpp:293:36
#15 0x0000557306c170ee mlir::arith::ConstantIndexOp mlir::OpBuilder::create<mlir::arith::ConstantIndexOp, long>(mlir::Location, long&&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Builders.h:518:5
#16 0x00005573091f598e mlir::getOrCreateRanges(mlir::OffsetSizeAndStrideOpInterface, mlir::OpBuilder&, mlir::Location) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp:3048:17
#17 0x000055730f501e5c mlir::tensor::ExtractSliceOp::getOrCreateRanges(mlir::OpBuilder&, mlir::Location) /data/szy/MLIR/llvm-debug/llvm-project/build/tools/mlir/include/mlir/Dialect/Tensor/IR/TensorOps.h.inc:1957:12
#18 0x000055730f500235 getRangeFromOperandShape(mlir::OpBuilder&, mlir::Location, mlir::Value, unsigned int) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp:176:46
#19 0x000055730f500095 fuse(mlir::OpBuilder&, mlir::linalg::LinalgOp, mlir::AffineMap, mlir::OpOperand&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp:190:5
#20 0x000055730f4ffd60 mlir::linalg::fuseProducerOfTensor(mlir::OpBuilder&, mlir::OpResult, mlir::OpOperand&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp:271:7
#21 0x000055730f4ff92f mlir::linalg::fuseProducerOfTensor(mlir::OpBuilder&, mlir::OpOperand&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp:0:10
#22 0x000055730b813e99 fuseLinalgOpsGreedily(mlir::func::FuncOp) /data/szy/MLIR/llvm-debug/llvm-project/mlir/test/lib/Dialect/Linalg/TestLinalgFusionTransforms.cpp:47:20
#23 0x000055730b8139a6 (anonymous namespace)::TestLinalgGreedyFusion::runOnOperation() /data/szy/MLIR/llvm-debug/llvm-project/mlir/test/lib/Dialect/Linalg/TestLinalgFusionTransforms.cpp:90:24
#24 0x000055730c2733f4 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:0:17
#25 0x000055730c273395 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1>(long) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#26 0x000055730699f859 llvm::function_ref<void ()>::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#27 0x000055730c27613b void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#28 0x000055730c26ef97 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:532:17
#29 0x000055730c26f4b7 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:592:16
#30 0x000055730c2746e8 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:813:36
#31 0x000055730c274540 auto void mlir::parallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&)::'lambda'(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>&&)::operator()<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&>(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>&&) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Threading.h:120:56
#32 0x000055730c274f71 llvm::LogicalResult mlir::failableParallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, void mlir::parallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&)::'lambda'(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>&&)>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&)::'lambda'()::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Threading.h:62:18
#33 0x000055730c274dad std::_Function_handler<void (), llvm::LogicalResult mlir::failableParallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, void mlir::parallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&)::'lambda'(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>&&)>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&)::'lambda'()>::_M_invoke(std::_Any_data const&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:302:7
#34 0x000055730c283e5e std::function<void ()>::operator()() const /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:688:7
#35 0x000055730c283e25 void std::__invoke_impl<void, std::function<void ()>>(std::__invoke_other, std::function<void ()>&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:60:7
#36 0x000055730c283de5 std::__invoke_result<std::function<void ()>>::type std::__invoke<std::function<void ()>>(std::function<void ()>&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:95:7
#37 0x000055730c283dbd void std::thread::_Invoker<std::tuple<std::function<void ()>>>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:244:6
#38 0x000055730c283d45 std::thread::_Invoker<std::tuple<std::function<void ()>>>::operator()() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread:251:4
#39 0x000055730c283c4c std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<std::function<void ()>>>, void>::operator()() const /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/future:1362:6
#40 0x000055730c283b10 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<std::function<void ()>>>, void>>::_M_invoke(std::_Any_data const&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:285:9
#41 0x000055730c2839b1 std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:688:14
#42 0x000055730c2837e9 std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/future:561:27
#43 0x000055730c283968 void std::__invoke_impl<void, void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::__invoke_memfun_deref, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:73:7
#44 0x000055730c2838dd std::__invoke_result<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>::type std::__invoke<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:95:7
#45 0x000055730c2838a4 void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::'lambda'()::operator()() const /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/mutex:673:7
#46 0x000055730c283874 void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::'lambda0'()::operator()() const /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/mutex:676:70
#47 0x000055730c283841 void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::'lambda0'()::__invoke() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/mutex:676:21
#48 0x00007ff6b48bd4df __pthread_once_slow /build/glibc-LcI20x/glibc-2.31/nptl/pthread_once.c:118:7
#49 0x000055730c274bd7 __gthread_once(int*, void (*)()) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:700:5
#50 0x000055730c2837a7 void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/mutex:683:11
#51 0x000055730c283575 std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/future:403:6
#52 0x000055730c28555f std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<std::function<void ()>>>, void>::_M_complete_async() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/future:1610:9
#53 0x000055730c285cea std::__future_base::_State_baseV2::wait() /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/future:334:2
#54 0x000055730c285cca std::__basic_future<void>::wait() const /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/future:693:7
#55 0x000055730c285c75 std::shared_future<void> llvm::ThreadPoolInterface::asyncImpl<void>(std::function<void ()>, llvm::ThreadPoolTaskGroup*)::'lambda'()::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/Support/ThreadPool.h:114:46
#56 0x000055730c285abd std::_Function_handler<void (), std::shared_future<void> llvm::ThreadPoolInterface::asyncImpl<void>(std::function<void ()>, llvm::ThreadPoolTaskGroup*)::'lambda'()>::_M_invoke(std::_Any_data const&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:302:7
#57 0x000055730c283e5e std::function<void ()>::operator()() const /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:688:7
#58 0x000055731078d211 llvm::StdThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/ThreadPool.cpp:103:5
#59 0x000055731078e475 llvm::StdThreadPool::grow(int)::$_0::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/ThreadPool.cpp:49:5
#60 0x000055731078e3f9 auto void llvm::thread::GenericThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::$_0>>(void*)::'lambda'(auto&&, auto&&...)::operator()<llvm::StdThreadPool::grow(int)::$_0&>(auto&&, auto&&...) const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/Support/thread.h:44:9
#61 0x000055731078e3cd auto std::__invoke_impl<void, void llvm::thread::GenericThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::$_0>>(void*)::'lambda'(auto&&, auto&&...), llvm::StdThreadPool::grow(int)::$_0&>(std::__invoke_other, void llvm::thread::GenericThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::$_0>>(void*)::'lambda'(auto&&, auto&&...)&&, llvm::StdThreadPool::grow(int)::$_0&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:60:7
#62 0x000055731078e37d std::__invoke_result<auto, auto...>::type std::__invoke<void llvm::thread::GenericThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::$_0>>(void*)::'lambda'(auto&&, auto&&...), llvm::StdThreadPool::grow(int)::$_0&>(auto&&, auto&&...) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/invoke.h:95:7
#63 0x000055731078e34d decltype(auto) std::__apply_impl<void llvm::thread::GenericThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::$_0>>(void*)::'lambda'(auto&&, auto&&...), std::tuple<llvm::StdThreadPool::grow(int)::$_0>&, 0ul>(auto&&, std::tuple<llvm::StdThreadPool::grow(int)::$_0>&, std::integer_sequence<unsigned long, 0ul>) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple:1684:7
#64 0x000055731078e2ad decltype(auto) std::apply<void llvm::thread::GenericThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::$_0>>(void*)::'lambda'(auto&&, auto&&...), std::tuple<llvm::StdThreadPool::grow(int)::$_0>&>(auto&&, std::tuple<llvm::StdThreadPool::grow(int)::$_0>&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple:1694:7
#65 0x000055731078e27e void llvm::thread::GenericThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::$_0>>(void*) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/Support/thread.h:46:3
#66 0x000055731078dfc5 void* llvm::thread::ThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::$_0>>(void*) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/Support/thread.h:56:5
#67 0x00007ff6b48b4609 start_thread /build/glibc-LcI20x/glibc-2.31/nptl/pthread_create.c:478:7
#68 0x00007ff6b3fd9353 __clone /build/glibc-LcI20x/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:97:0
Metadata
Metadata
Assignees
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]mlir:linalg