<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/128804>128804</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] Assertion `getImpl() && "Uninitialized SparseTensorEncodingAttr"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
RiRi114
</td>
</tr>
</table>
<pre>
Test on commit:0f9720a6
steps to reproduce:
`mlir-opt temp.mlir -sparse-tensor-codegen `
test case:
```mlir
#sparse = #sparse_tensor.encoding<{ map = (d0, d1) -> (d0 : dense, d1 : compressed) }>
func.func @sparse_tensor_demo(%arg0: tensor<128x64xf32, #sparse>) -> tensor<128x64xf32> {
%0 = sparse_tensor.convert %arg0 : tensor<128x64xf32, #sparse> to tensor<128x64xf32>
%1 = linalg.generic {
indexing_maps = [
affine_map<(i, j) -> (i, j)>, // input
affine_map<(i, j) -> (i, j)> // output
],
iterator_types = ["parallel", "parallel"]
}
ins(%arg0: tensor<128x64xf32, #sparse>)
outs(%0: tensor<128x64xf32>) {
^bb(%a: f32, %b: f32):
%sum = arith.addf %a, %b : f32
linalg.yield %sum : f32
} -> tensor<128x64xf32>
return %1 : tensor<128x64xf32>
}
```
crash trace:
```
mlir-opt: /home/fuzzing/llvm-project/mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp:462: bool mlir::sparse_tensor::SparseTensorEncodingAttr::isSlice() const: Assertion `getImpl() && "Uninitialized SparseTensorEncodingAttr"' 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/build/bin/mlir-opt temp.mlir -sparse-tensor-codegen
#0 0x000000000113ce77 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x113ce77)
#1 0x000000000113aa0e llvm::sys::RunSignalHandlers() (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x113aa0e)
#2 0x000000000113d855 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007c3974382520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007c39743d69fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x00007c3974382476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x00007c39743687f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x00007c397436871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x00007c3974379e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x00000000031b9ae2 (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x31b9ae2)
#10 0x000000000331e647 (anonymous namespace)::SparseConvertConverter::matchAndRewrite(mlir::sparse_tensor::ConvertOp, mlir::sparse_tensor::ConvertOpGenericAdaptor<llvm::ArrayRef<mlir::ValueRange> >, mlir::ConversionPatternRewriter&) const SparseTensorCodegen.cpp:0:0
#11 0x000000000331e31b mlir::OpConversionPattern<mlir::sparse_tensor::ConvertOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::ValueRange>, mlir::ConversionPatternRewriter&) const (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x331e31b)
#12 0x00000000042a5af6 mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x42a5af6)
#13 0x0000000006a1e891 void llvm::function_ref<void ()>::callback_fn<mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_2>(long) PatternApplicator.cpp:0:0
#14 0x0000000006a1b28f mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x6a1b28f)
#15 0x00000000042a6bb2 (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#16 0x00000000042a5c27 mlir::OperationConverter::convert(mlir::ConversionPatternRewriter&, mlir::Operation*) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x42a5c27)
#17 0x00000000042a6dcf mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x42a6dcf)
#18 0x00000000042ad1eb mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x42ad1eb)
#19 0x000000000326b18b (anonymous namespace)::SparseTensorCodegenPass::runOnOperation() SparseTensorPasses.cpp:0:0
#20 0x00000000042452f7 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x42452f7)
#21 0x0000000004245b61 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x4245b61)
#22 0x000000000424825b mlir::PassManager::run(mlir::Operation*) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x424825b)
#23 0x00000000042408af performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#24 0x0000000004240503 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&) MlirOptMain.cpp:0:0
#25 0x00000000042ec4e8 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/build/bin/mlir-opt+0x42ec4e8)
#26 0x000000000423a151 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x423a151)
#27 0x000000000423a403 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x423a403)
#28 0x000000000423a612 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x423a612)
#29 0x000000000111a8d7 main (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x111a8d7)
#30 0x00007c3974369d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#31 0x00007c3974369e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#32 0x000000000111a435 _start (/home/fuzzing/llvm-project/build/bin/mlir-opt+0x111a435)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWltv47oR_jXMCxFDou4PftA6SbvABgmSbV8NSqJknqVIlaT2JPvrC1K0dYlzcZI9RYsuNnEkkt9cvpnhUDJWijackDWIvoDo4gz3eifk-o7eUd8PzwpRPa6_E6Wh4LAUbUs1uLwCXzYgy706S5CHY-DlwMuVJp2CWkBJOimqviQgMPdB7LWMynPRaQg1abuVuYQQwnPVYanIuSZcCXleioo0hEMQewOiNmJLrEag4b9Zb65RMABAEFzAw9V2gFsRXoqK8gYEG5B8gS3u3Ly08gDawMoHKIPnILgc7kEQ5LAiXJFh1F6Xou0kUYpUZjJILkBwCby87nm5Mr8gCL2Z2G1FWgFQClCEZeMZjGEABBsfpQ9x-FAHyEg4KGwg95ocm2sUTL4AL4cQoMizVsxNLQX_SaSGTih8o1RD1nGBe2G-FcYox6xZNYQTScuDMhBSXpEHypttizs1eDfaj0GI65pyYsYMBSilRv4fU6cf7lgXbIzIK4CuIOVdr9-JAw8ootcjDIguANrs9dZEYi3kVj92ZFQcoQ5LzBhhADlnze5EF4NfkuGTcvUeou1a0Wu3-NmVQ1SMzgbRZVE4gWbNAT0qDpfZkCmD3wCKVN9a67CkerfCVVXbGNmvg_uF-yWO6UdKWDWuH-eA5OKlOB3mmF-S6F7yfQg9a6CXD848pPaQ-KXEage1xOUy9YGX74uJgQXoaidaAtBV3f_6ZZIdXTH2sz3vpPiDlBqgK1ss0BWjBUBXFxSz4fa9ZeT7oBa6-nq3uOdmrsquA0EexsiIK4Rg0AIGOQjyWRIOt6YQl64A5Vq7UaruGS2JJTGDpeDKWpErRaSmwpa-huivbcfcHIBigGITiP_glFNNMaO_SAWflWMCN4E1poxUK-Dlt98u8_tLqPqipRpiWPSNKdBCapP9O607ZXSzGdNQveuLVSla58an3qRK9USZ7MK8gpSXrK8I1DsCB84KXP6wvBnZ9xqXP2DVt93AorcaouxWikbiFmLZ9C3hWr2RyqKnrDKflDti7aYy7inHNxQTkAAFHvQevP0_3w9KkiTQWjmQ-aiGP24l5dqq_t0GIErHSRL_uRVKS4Jby8wGUq4HntJ3GwDQF-_BKeTqA0CBv1AXY48cU_eu5_e04Zj9HfOKEakOkfNxjYzMUSO00KhKowjOZJtSbPyxgYo2lNdiqwHKzfVPQSv7Z-ZWKJdZnv0ZBAROQFIGWRIGKYqQ5-wY0vchjbdxeM4o7x_OG94PA-VKiVVsdQ7NklHjcA5YxVldwk7vJMHV9gdl7DT0zKwf0aOlumESw0ZZ805VO0ziETieA8dpUgcQF8Lu8CfAIrNwhE2ewPrFyYB-MQKmc8AkI1l8GmBgloyA2TTCAr_IMEEfD2QHNIgxmTWrBEHgkzhMjBjMBX9sRa8gxy1Rnc3-bFrYN0Oj5T6IK-st1uUu59Ud-VNSbSrGi3uEW33TmcR428y_Da1XXuFO2210LAS5lPjxjtQg2IxY_8SsJ3eYN7bNc93VODzgKir4LdaaSO40l7aouZ1ptsdshlK6SFrjTH_pzMAvJqJuuifCZpq-6J_g8nUH33Sml6OCu0pzimfe45WPh-PgozEcZ3U1RDjCdfySWqf7ZBz5rZY53UfLgqllMfZJmvl2K5iwZE5RRtWttEzZ0WELO9BfYsZMY7Gt57HjjMm7jtESa_GGdDzNM5vn9bSt4AzaAbi2zjrWhdirxn4IZBz4JhpaYnZHVM_023BddQMo3A4njpQJw3oGnzj3SO6HC34LlNZPXfp_fj7Az8ez0vEyZmW0qDdxUaDXtr8DL99IY48gTm_mLt9I4msl1p26xmlHgi5elssSJfCI8MUm7Z6RzBR9WZ3NMVTXxH5KrSxRMrKSLFmpyvrtZh2G1ey8cnQLnNnySUHmFB7NSRfmVD6ZtgW469jjLZbmQDuycHIUfceyIXqSNdNpV1L8IntKHcH3z84eQTeC17T5LLcYw0e3zDtcFBd-Wryt9Zz1YbdYueOf7PkNn7jKnv2mK8xUsjxtmdOcN2cojFA9zaOKaEzZnorv4qYzSIcO1MleFDGlnpD1PI05x-xRUXWNOW5Mzm3sAxbz2XP7ULr6tOO1s-9ABPKX1hexf7L1t7QjjPJl9TNTD0a9WEje5Y75rqjUV660tA9ShDyybU4nDJKHAaf7LZaE66-8FvvE-KwCZ306enzR5oYpioqFonvTj0bXbyjBVodRw2ChoZfiGnZE1kK2efm0uj59GqR05Y41OyxJte30_LB2L3pZkutGmmPZ8Tp0_e3r3UZwTR70EzKvGZU3nb7G1BWpab8AJ6NH0j1cGhd5AXyuN3lPM3Owvef0Xz15Yvs1aYV8_NLX9RDch_kVqXHP9LYijGjy_JrxJPs8Ba8fGiZeeiuZv9-gUT3XAd2RhiotH5-Gx0shMDbzwbSZ_0tNeYGbVyJ00ZeSMiTp7PkIozrn1a0UJVFqr-x_Ju7-G9PixRnTsXstKW9M2_jc7U-pvpbgsfou-voA-5F_PPD_5_L2M7xp_TV6M1l6M_SCZ73p2opyh4cGIj81Hl7zxCdZGHrBaGG6tDD20adY-JeYEvvjA2mUzd-s-DitEthiyj_jLY5FO8g6vAbbvwXIquzElyzILBkB_SUgCT243Zo1W6Wx1NuJJW8WQcKJCLT0TxhEcAD_HA-FQTRIywshNbEPfUohiX15ab_7MX0JfVatgyoLMnxG1n4SelGQRRk6263jtKzToqxq5JGoytIkxVmd4CIiRZoiEp7RNfJQ5CEUe4Ef-GgVJJVfkqTISIhTUiAQeqTFlK2M_ishmzP7xnXtozT1wjOGC8LUeviywvBmG4Ho4kyurb1F3ygQeowqrUYETTWzX-8xrSWILn7f--azXrL1-98pOyN_rtG_AwAA__-CgSxj">