<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/131139>131139</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] using ‘-test-ir-visitors' on 'async.coro.suspend' triggering LLVM ERROR: operation destroyed but still has uses
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sweead
</td>
</tr>
</table>
<pre>
Test commit: https://github.com/llvm/llvm-project/commit/9e91725fd4d4ee30e98ab2682f93b423590a4ade
Steps to reproduce:
```shell
mlir-opt test.mlir -test-ir-visitors
```
Test case:
```mlir
module {
func.func private @async_execute_fn() -> !async.token attributes {passthrough = ["presplitcoroutine"]} {
%0 = async.runtime.create : !async.token
%1 = async.coro.id
%2 = async.coro.begin %1
%3 = async.coro.save %2
async.runtime.resume %2
async.coro.suspend %3, ^bb3, ^bb1, ^bb2
^bb1: // pred: ^bb0
cf.br ^bb2
^bb2: // 2 preds: ^bb0, ^bb1
cf.br ^bb3
^bb3: // 2 preds: ^bb0, ^bb2
return %0 : !async.token
}
}
```
Crash trace:
```console
LLVM ERROR: operation destroyed but still has uses
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/workdir/llvm-project/build/bin/./mlir-opt test.mlir -test-ir-visitors
#0 0x0000562ad7d67228 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12d1228)
#1 0x0000562ad7d64d4e llvm::sys::RunSignalHandlers() (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12ced4e)
#2 0x0000562ad7d67c31 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007fd94b697520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007fd94b6eb9fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x00007fd94b697476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x00007fd94b67d7f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x0000562ad7d8711c llvm::report_fatal_error(llvm::Twine const&, bool) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12f111c)
#8 0x0000562ad7d86f66 (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12f0f66)
#9 0x0000562adaffd29d mlir::Operation::~Operation() (/home/workdir/llvm-project/build/bin/./mlir-opt+0x456729d)
#10 0x0000562adaffdead llvm::ilist_traits<mlir::Operation>::deleteNode(mlir::Operation*) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x4567ead)
#11 0x0000562adaf3d828 mlir::Block::~Block() (/home/workdir/llvm-project/build/bin/./mlir-opt+0x44a7828)
#12 0x0000562adaf3dcfd mlir::Block::erase() (/home/workdir/llvm-project/build/bin/./mlir-opt+0x44a7cfd)
#13 0x0000562adaa40f9e void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Block*)>, mlir::WalkOrder) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x3faaf9e)
#14 0x0000562adaa40f83 void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Block*)>, mlir::WalkOrder) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x3faaf83)
#15 0x0000562adb4ee086 (anonymous namespace)::TestIRVisitorsPass::runOnOperation() TestVisitors.cpp:0:0
#16 0x0000562adae5dcd3 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43c7cd3)
#17 0x0000562adae5e572 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43c8572)
#18 0x0000562adae60d4e mlir::PassManager::run(mlir::Operation*) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43cad4e)
#19 0x0000562adae592cb performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#20 0x0000562adae58f23 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&) MlirOptMain.cpp:0:0
#21 0x0000562adaf04475 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/workdir/llvm-project/build/bin/./mlir-opt+0x446e475)
#22 0x0000562adae52b82 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43bcb82)
#23 0x0000562adae52e33 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43bce33)
#24 0x0000562adae53042 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/home/workdir/llvm-project/build/bin/./mlir-opt+0x43bd042)
#25 0x0000562ad7d469af main (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12b09af)
#26 0x00007fd94b67ed90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#27 0x00007fd94b67ee40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#28 0x0000562ad7d46505 _start (/home/workdir/llvm-project/build/bin/./mlir-opt+0x12b0505)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWd1u47oRfhrmhohBkfq98IU3idEFNk2QXZxeGpQ4ktnIpEpSm-Smz16QsiNZTnY3pz6naAvsJnLImfnmmx-OKW6tbBTAEiWfUHJ9wXu31WZpnwC4uCi1eFl-A-twpXc76RBb4a1znUVshega0XUj3bYvF5XeIbpu2--HX5ed0X-HyiG63ovSdQFFlNGkFrGIARiBIuclTXNaF6yMKUsKwmMuAJEVIquvDjqLncYGOqNFX4E3SlYoJcM_u4W2RWS1a6W51J3DDqxb-E_40j9eSnP5XVrptLFTOURWg0vczlV6Ya9Ri74FjLJPiKwwrntVLfwP3Bn5nTvAKCbcvqhqA89Q9Q42tUI0R7TAl4jdYESjsLxw-hEU5s4ZWfYOrFfZcWvd1ui-2WLErrEnntLOgO1a6SptdO-kAkQpSq5Rdv0KA2NEExJkBu2mV07uYFEZCKDYamZ5FIsmYt7EQopxkc4XS2ikCmLjJjbfZPl3CNL7PceYDNh-98b6INrbDpQIahG9wii5KcvxKXp9GmT3f2T-MSQd7gyI4K5fIXsDVb0ozYkcncrRIGknoqPNEyVsVMJ-TcnBVQOuN-oQrjejgrJrn3jDz0lmXhlut9gZfpLulVZWt744vnz57RbfPDzcPXjlugPDndQKC7DO6BcQuOwdtk62Ld5yi3sLvgDuv9ysvt5g25c76TDHZd_42tLG-Sr7cFlLa3uwnhCuBJaqansB2G0BV8GHklePwY9FKGZePWLR77rBK7JApLg3ujF8h7lp-h0oN1BK11u9A0TXT9o8CmlOLZe9bIX_LRWi6wWi619sARhRRjB5JoSQJKVcZCLNKM1x8JCtEFvZFzs83BupXID9LQSD5uMmw5822joDfIdo6sMvlfPVH5rAv4Ef0U_kOaIioqGb7CFHM8i-fb4F-aFXX2WjePsXrkQLxu570plQVSBiGFHROZEVi_CRfUTzwMsVtrKRqtYbh-jKf_6upQiPxV7CLqrOpwYJ_wcDbG8gq0URl2mRJZTsfWlliej6OU83aXzZStU_XzaqHxaqhdWLNGCOaULJiDg-VghlUVe4c1sDXGwefbV8SHuRFnU1ak_mcOMsxY0N7n0Udpylo-L0WHEmspphXvq6_ZBammc1G9Vmx_HLsyiqJlk1dIZNzR1vN2CMNkcl8O1JKsC-J7l9CZRat2fMtjqKogm7-QxtWqfp2UyROp3wXUxN8boWtBA4TAbB87tDvx0-_nP8fMZqi5M0o4UYQPkWQOaggItJtGQrrds4w6Xvoldvor0Z_iKgBQd_1cL3tLc2DnV5NjeAT9yIjt1gIqf5hNtPra4e97wOz-fkNOZZfuirHgydg6lq8TYYMH5WPDOWqp4Qw46w8JjUBYQ2OQEkwHHZDs9PvH08CvRamyduxGfnw6iND_f74b2apI4fbP3CxkCN2FWweSS6D4TPiqD1agLpb7x9vDPC9_ozMcNqzusCRmbiE2Zy9v_LTM5GZpIpM2UMQPLQE7nS6mWne4sV34HtwvhS7Ps2WPf54bf9THTP7X52ML26U_NW5jcfts4OaG8_PYoMJKIS7J2g3HXf9F3nza0E70IU9laPCA14hjC8H6BxZaV4-2KlveWKN57pwyl0hXsVvteKs05mMauySkwikM0YgCSjH2bgXnbQhm98R1npt746lp6dkqmQN_VZWWfCGO5P-tWPNkxOvwP2e25Auc-q1oeZ4IyHCKvyJKMj6_kx6ynx8_Ax2IP7b2bZH3PUsYq_zsceZTHLjYJWJe7A1NrsVqGv2J98qbBO7Cf8LTcgNp0ziF2NEl91byq4bXxLOxrFRldvv3x-uNLKwbM7CeptK81d5265VFda1bKZ6CjwZPW09CmZOZfXlE065xfdyIq3D2D71r3fUd8TQDR_9b1X8h89nPh-CzttXj71dT0k-et-ATXvW7cZxpz3Zfw4dHPc7-cRKF5npoq3rf8-u6nV0dEyIelXY_mH-zOiu5a8hco9QCOtMy-nyfGjBBi2IBpvyHBitlo1f64nP4jMT9JzNmaSOM6SiePhpm2lxL3RFVh7wPofSbr_wpL44Y7p2ldnpGoeoH73z2cbp1OIs-S1-VI660-0zOnbmf-_VrfnOs3KqszHM5eyOaHA2LuE7geMasuHUWL10bT4GRtn9BLYOM_ReOYlI_H7afMRL_8sdwSJJ0FLji9N4rTgNd7xcLd_lpuTkhS8Hu3Nb6pAFB-8saOFKMioMJsrhJjgzcbLbKzjxm0m3vyyCYgnJvI5RwlJ8KD8fCwl5NCbDrf5F2LJRMEKfgHLKIujPKO0YBfbJaEJpxERWVLGWQo8TosoL3MOdRERKuoLuaSEJoRFLGI0TuiCJkAEYXGRJyJPMoFiAjsu24XHudCmuQhX9cuIRRErLlpeQmuXw2unkJfhTdOFWQa_yr6xKCattM6OGpx0bXhH6AdKlFzj3krVYHRDUU5QkZ_ettMMax-Z7PS9j19zRjYN-ArBv-d1xkVv2uXvf2Wxp-L7kv4rAAD__7tv2Lg">