-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Closed
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]mlir:affine
Description
Test on commit: release 19.1.4
steps to reproduce:
mlir-opt -affine-data-copy-generate=generate-dma=false test.mlir
test case:
module {
func.func @tensor_computation(%X: memref<1024x1024xf32, "slowMemorySpace">, %Y: memref<1024x1024xf32, "slowMemorySpace">, %Z: memref<1024x1024xf32, "slowMemorySpace">) -> memref<1024x1024xf32, "slowMemorySpace"> {
affine.for %i = 0 to 1024 step 64 {
affine.for %j = 0 to 1024 step 64 {
%valX = affine.load %X[%i, %j] : memref<1024x1024xf32, "slowMemorySpace">
%valY = affine.load %Y[%i, %j] : memref<1024x1024xf32, "slowMemorySpace">
%result = arith.addf %valX, %valY : f32
affine.store %result, %Z[%i, %j] : memref<1024x1024xf32, "slowMemorySpace">
}
}
return %Z : memref<1024x1024xf32, "slowMemorySpace">
}
}crash trace:
mlir-opt: /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/IR/BuiltinTypes.cpp:518: unsigned int mlir::detail::getMemorySpaceAsInt(mlir::Attribute): Assertion `llvm::isa<IntegerAttr>(memorySpace) && "Using `getMemorySpaceInteger` with non-Integer attribute"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/fuzzing/llvm-project-llvmorg-19.1.4/build/bin/mlir-opt -affine-data-copy-generate=generate-dma=false test.mlir
#0 0x00000000013906e7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/lib/Support/Unix/Signals.inc:723:13
#1 0x000000000138c27a llvm::sys::RunSignalHandlers() /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/lib/Support/Signals.cpp:0:5
#2 0x0000000001391c24 SignalHandler(int) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/lib/Support/Unix/Signals.inc:413:1
#3 0x0000736cc1d27520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x0000736cc1d7b9fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x0000736cc1d27476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x0000736cc1d0d7f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x0000736cc1d0d71b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x0000736cc1d1ee96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x0000000008b1b412 decltype(auto) llvm::cast<mlir::IntegerAttr, mlir::Attribute>(mlir::Attribute&) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/Support/Casting.h:572:3
#10 0x0000000008b1b412 mlir::detail::getMemorySpaceAsInt(mlir::Attribute) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/IR/BuiltinTypes.cpp:520:32
#11 0x00000000016ecd4b mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&)::$_5::operator()(mlir::Operation*) const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp:2305:12
#12 0x00000000016ecd4b void llvm::function_ref<void (mlir::Operation*)>::callback_fn<mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&)::$_5>(long, mlir::Operation*) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#13 0x0000000001601201 void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/Visitors.h:0:9
#14 0x0000000001601201 void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/Visitors.h:0:9
#15 0x00000000016d5f2b void mlir::Block::walk<(mlir::WalkOrder)1, mlir::ForwardIterator, mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&)::$_5, void>(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&)::$_5&&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/Block.h:343:19
#16 0x00000000016d5f2b mlir::affine::affineDataCopyGenerate(llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<mlir::Operation, true, false, void, false, void>, false, false>, mlir::affine::AffineCopyOptions const&, std::optional<mlir::Value>, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp:2300:10
#17 0x00000000015ff886 (anonymous namespace)::AffineDataCopyGeneration::runOnBlock(mlir::Block*, llvm::DenseSet<mlir::Operation*, llvm::DenseMapInfo<mlir::Operation*, void> >&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp:0:15
#18 0x00000000015f9d63 (anonymous namespace)::AffineDataCopyGeneration::runOnOperation() /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp:217:20
#19 0x0000000008792bb3 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:17
#20 0x0000000008792bb3 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7>(long) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#21 0x0000000008792bb3 llvm::function_ref<void ()>::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12
#22 0x0000000008792bb3 void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/MLIRContext.h:275:7
#23 0x0000000008792bb3 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:521:21
#24 0x0000000008793940 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:16
#25 0x00000000087a1e67 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:818:5
#26 0x00000000087963e3 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> > >, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15&>(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)::$_15&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/Threading.h:0:18
#27 0x00000000087963e3 llvm::LogicalResult mlir::failableParallelForEach<std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> >&, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15&>(mlir::MLIRContext*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> >&, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_15&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/Threading.h:92:10
#28 0x00000000087963e3 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:823:14
#29 0x0000000008792997 mlir::detail::OpToOpPassAdaptor::runOnOperation(bool) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:5
#30 0x0000000008792997 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:525:20
#31 0x0000000008792997 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7>(long) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#32 0x0000000008792997 llvm::function_ref<void ()>::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12
#33 0x0000000008792997 void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/MLIRContext.h:275:7
#34 0x0000000008792997 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:521:21
#35 0x0000000008793940 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:16
#36 0x0000000008798b92 mlir::PassManager::run(mlir::Operation*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:0
#37 0x000000000878224b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:17
#38 0x0000000008781a78 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:473:12
#39 0x0000000008781a78 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_3::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&) const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:548:12
#40 0x0000000008781a78 llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_3>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#41 0x00000000089a9a3a llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&) const /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#42 0x00000000089a932d mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Support/ToolUtilities.cpp:0:12
#43 0x000000000877832a mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:10
#44 0x0000000008778b58 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:14
#45 0x00000000087796f3 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:605:10
#46 0x0000000001305e9d main /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/tools/mlir-opt/mlir-opt.cpp:0:33
#47 0x0000736cc1d0ed90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#48 0x0000736cc1d0ee40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#49 0x00000000013057f5 _start (/home/fuzzing/llvm-project-llvmorg-19.1.4/build/bin/mlir-opt+0x13057f5)
Aborted (core dumped)
Metadata
Metadata
Assignees
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]mlir:affine