<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/131291>131291</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] `-test-memref-dependence-check` triggers Assertion `space.isUsingIds() && other.space.isUsingIds() && "both relations need to have identifers to merge and align"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Lambor24
</td>
</tr>
</table>
<pre>
Test on commit: [6b7daf2](https://github.com/llvm/llvm-project/commit/6b7daf224933d60a7ef8acc399da8388b90bf318).
steps to reproduce:
```
mlir-opt test.mlir -test-memref-dependence-check
```
test case:
```
module {
func.func @main() {
%c25_i64 = arith.constant 25 : i64
%alloc = memref.alloc() {alignment = 64 : i64} : memref<i64>
affine.store %c25_i64, %alloc[] : memref<i64>
return
}
}
```
crash trace:
```
mlir-opt: /home/projects/project/llvm-project/mlir/lib/Analysis/Presburger/IntegerRelation.cpp:1311: void mlir::presburger::IntegerRelation::mergeAndAlignSymbols(IntegerRelation &): Assertion `space.isUsingIds() && other.space.isUsingIds() && "both relations need to have identifers to merge and align"' 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/projects/project/llvm-project/build/bin/mlir-opt /home/test.mlir -test-memref-dependence-check
#0 0x0000652c5677daad llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:804:11
#1 0x0000652c5677df9b PrintStackTraceSignalHandler(void*) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:880:1
#2 0x0000652c5677c006 llvm::sys::RunSignalHandlers() /home/projects/project/llvm-project/llvm/lib/Support/Signals.cpp:105:5
#3 0x0000652c5677e77d SignalHandler(int, siginfo_t*, void*) /home/projects/project/llvm-project/llvm/lib/Support/Unix/Signals.inc:418:7
#4 0x000071b626e0a520 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#5 0x000071b626e5e9fc pthread_kill (/usr/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#6 0x000071b626e0a476 gsignal (/usr/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#7 0x000071b626df07f3 abort (/usr/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#8 0x000071b626df071b (/usr/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#9 0x000071b626e01e96 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x0000652c613321d8 mlir::presburger::IntegerRelation::mergeAndAlignSymbols(mlir::presburger::IntegerRelation&) /home/projects/project/llvm-project/mlir/lib/Analysis/Presburger/IntegerRelation.cpp:0:3
#11 0x0000652c5bd5e7d0 mlir::affine::MemRefAccess::getAccessRelation(mlir::presburger::IntegerRelation&) const /home/projects/project/llvm-project/mlir/lib/Dialect/Affine/Analysis/AffineAnalysis.cpp:496:28
#12 0x0000652c5bd5d865 mlir::affine::checkMemrefAccessDependence(mlir::affine::MemRefAccess const&, mlir::affine::MemRefAccess const&, unsigned int, mlir::affine::FlatAffineValueConstraints*, llvm::SmallVector<mlir::affine::DependenceComponent, 2u>*, bool) /home/projects/project/llvm-project/mlir/lib/Dialect/Affine/Analysis/AffineAnalysis.cpp:638:24
#13 0x0000652c5c251f80 checkDependences(llvm::ArrayRef<mlir::Operation*>) /home/projects/project/llvm-project/mlir/test/lib/Analysis/TestMemRefDependenceCheck.cpp:86:35
#14 0x0000652c5c251cbe (anonymous namespace)::TestMemRefDependenceCheck::runOnOperation() /home/projects/project/llvm-project/mlir/test/lib/Analysis/TestMemRefDependenceCheck.cpp:117:1
#15 0x0000652c5bdfcd6b mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1::operator()() const /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:0:17
#16 0x0000652c5bdfcd05 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1>(long) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#17 0x0000652c567a3e09 llvm::function_ref<void ()>::operator()() const /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#18 0x0000652c5be00965 void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /home/projects/project/llvm-project/mlir/include/mlir/IR/MLIRContext.h:289:3
#19 0x0000652c5bdf85da mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:532:17
#20 0x0000652c5bdf8b64 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:592:16
#21 0x0000652c5bdfa5c8 mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:905:10
#22 0x0000652c5bdfa4f2 mlir::PassManager::run(mlir::Operation*) /home/projects/project/llvm-project/mlir/lib/Pass/Pass.cpp:885:60
#23 0x0000652c5bdeb54a performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:474:17
#24 0x0000652c5bdeb10c processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:542:12
#25 0x0000652c5bdeaebc mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:625:12
#26 0x0000652c5bdeae56 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&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) /home/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#27 0x0000652c5bf7abb2 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/projects/project/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#28 0x0000652c5bf7a19c 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/projects/project/llvm-project/mlir/lib/Support/ToolUtilities.cpp:27:12
#29 0x0000652c5bde72c8 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:628:10
#30 0x0000652c5bde7689 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:669:14
#31 0x0000652c5bde7858 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /home/projects/project/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:685:10
#32 0x0000652c566eea1c main /home/projects/project/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:331:33
#33 0x000071b626df1d90 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#34 0x000071b626df1e40 __libc_start_main (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#35 0x0000652c566ee615 _start (/home/projects/project/llvm-project/build/bin/mlir-opt+0x29ee615)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWt1S47qyfhpxoyIly_8XXHiA1KFqqKEYZt2mZLud6Iwt5UjyHHj7XZIV7BjCQGCzZq9NUYkjy939fWq1umUxrflaAJyh-AuKL05YbzZSnX1lXSkVjU5KWT-c3YE2WApcya7jBoUFRvGXpExr1lAUXyCabYzZahQWiC4RXa652fTlopIdosu2_bX7Ot0q-b9QGUSXXhRdejE0ysOwTghLoclYVYV5XrMszLIyJ2UTBhmi-QIjUiBSaANbjY3ECrZK1n0FVrO7hVFC_D8puparU7k12IA2C_sLn9rL0w46Bc1pDVsQNYgKTqsNVD-tiMnjiBS2N66YHhXsyZd13wJG6ReruelFtbAfGEWkY1wgao3e3cYYIxpXNF7xJMIovMBMcbNZVFJow4TBNMaWWZ5EY3fWtrJynQeTF65hFMxavhYdCOP6OLmDhPTCXQ5PofDctoWXXjBrGi5goY1UMDEK0fNHnYM3vCBDgemVcD9QemGJGT73-asU0xtsFKsOMOhHyLkUXW5kB4guvZfo8fKp_9gnbSsvEV0WgrUPmtsHbhTosldrsHevhIE1qFtomeFSLKrtFoVFEAaBVfhL8ho7OWGBwmI7Pul-zx4eGjtQayhEXVjivz90pWw1otmsL0Y0QTS3SgqtQQ1tCdFbVsGC6x-ai_VVrXcDaXsnWJoNqMXLfRClpTQbrLwmjQVAbefChv0CzGsQhjeg3PRwxmImauz8BFGKaIobxluoF4gUN18vi--XWPdlxw1muOzXdkpJZZzAt05prnUPdgycSi6qtq8Bmw3gwQ1KVv10rmB1fzes-onrvtsOjkEW2P3dKLlWrMNMrXvr2PrtrlH2vK3tt52Cy8cgMAp5fTjAiIYEk3tCCEliWsVJmtaM1dgx4DxCP-jh4kZxYRysO-fvNBs7Kfb_K6mNAta5gTzHXJhhWN-CbMe7c_rv_dYOFaLLH4Lf2wa-FqzVCy4qFBYZiayvBx5FMEfR5CWemTwI-B8m6tZOn8xOEESLf7OdGbF2ejPpzMyKkOQ5sm97sWftOE0-wM6dgT5ckBiFRewNDGcGQprWeE6cG9xzrPmai0aujCPxHH8Kn1GQobBIvbmRNzcNyoQmQFhMCXZcLXs9BtD7LFkl0WnLRX9_uhb9cKNaaLlIEP1C7iMaU2JD2iA23hcbQ95UeGs2Cli9-snb9hgdeZI31agjmZsepQleawf2OAhRmozi0z3xdUPSJsSstMHvCOE0S5twFJ49ER6UR4oNylFsPqMkgDw5RmyYQ-6psKFhGuGSIAxpUGcftDC-XopbMT8vCbBBJ_T492JjWceQ1mSCf0iXhutr6G6hKaoKtI9EazDDzxHJm1G7HPA92C84a4fmYjB2j46hbdfgCYjyBIUFzTwHdMZBnSXxAQ7c4njt1swB-cXjwrmH_RBvA1y_Dr6xey9cuVJjH2Kff3zZMjOA_ou1PZxbAYpxm00MkXhcUb53rG3_gspIhcLz58WN-M5lt5UCBt20t-nwILCUsn2n_x4xhkloYz2N_BjurU0VjYMmI9iN1ohA7-UlhVLs4dZl9yP0b1tQ3jsLh_BIWDa3em522mpyGOAJsdZKjyqzjhnGHlQ0B1WVtmjJmJDioZO9xoJ14LLmIeVGYXFQg8_GevFNTFAekTm8E2IQpD7psRDj_bnXVHVSTjy7BsN4uxubO_lte8O0Lmq2dU7rEe1NPdvBe-aBcd27s7P8mgnmgubOoecTzvOLaLQKhkvphEo1sOi5fHc8G-x3X5N4HaSesOQJYSQeyrnRtW0lbsGuhuLV3fVGhpc-kLG2tUXJqhF7E-CPJfzSTl4p1kdnkL4oGxuKizubQd59XXq6WHt5bxTTi41dIxKf-VrS0_3Ml4VA8rfx_WG-chyaJJ-gyfZcCAjJk3i-I3D99er2XAoD92ZogHuoegNFNeQ95_vjf-nucin8_b0RHxwk8WP4Stb2VqpnY_XV7Q_Bje_7VNuxcW1k1jdc3SK6nPDhCKVZPsmi8tmkzOKa_aFR7GNDUxzSSXCiZM5DmURv5uGGb6F1SUA2hW67PsJLPpyYuQtd2bzJbcPYSVu81GFSCuxsv2EKhLkSjdylcEeUvr_jPnfcJ577WSbfsLjKZibvSHhkmmkNesbzq5n8YDi522sIiIdD53Cihv4GzgtAPtjWLLO2Jjtbw31boYwjhregGqm6ISDq32yJaVP7XZ4NU1Cvtsam5JNUXfaqguu1QuHlgRpiGrHnY3fdcvVta64ZF-dSNHw9kfEuau6kq3UfdxptpBx17cqtNJoGiWjOVkAqvFXSFjxf-qZx20ivIqsX_P96eELWNXRSPexETfrX0LC-NasaWjBw-Bm7aF--nsFpP1_J3MKaa6Me_P1Rz53bJ7qRsrXlsGpc6v5eB33VKMSRCxfUj8Is8QYGZfU83j9wNJ5n-ZX-PqaV5EBu9nmQDhP7AZXEq9wiofHULZInbhFPN6G_yjWvWHsLum_N4Qz40AN_Cre_LYP-W9x_rKo-E8lLXv9ptd2jy-8Vd2WTsrKk_wDX_gdFtXfUvI-jnM1HOcin653ettwUor6Z5SF_B2n_gR73Yo-9PWejuFjbUv5Q87syofEFoV38fhjecsNhl7bTdOoRs6IdUrpXMP2Dl4BPSCqySS0XkjnTSZYfZNpX49WGDXX3_KXFbx3odzR9Avwh9Ph3E2Ewh5_Fhx3tLfD_dpzZtGSfHWBIAFhQ4Y5xceQLhqcm7C69_jAM3KfXH87ePAd1ftQLf5rXOXl8RTw7R1A3AUQEr1b2mZU2TJmVx3iEIogmiuI5f0kQ40GFl_7uk0A7tVb0oLgopTLgdl4rqcAdS4LaG7V_ou2kPgvrPMzZCZwFaRTkYZom8cnmLGeU5DEtyzqMgAVRxhqgkMQkz2tWxdUJP6OExiQMIpKGCYkXTdYQxhIGTZDlZdCgiEDHeLuwKBZSrU_ciaqzIAxoHpy0rIRW785pqjOHtezXGkWk5dro8TnDTetOdF5_vbp15_gS8vJRp4Rgo_h6DUr_uUfWTnrVnh1_LM3z-OuM_isAAP__k0Z1Gg">