<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/83404>83404</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llc crash: An asserting value handle still pointed to this value!
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
shao-hua-li
</td>
</tr>
</table>
<pre>
llc crashed on the test case.
Bisected to https://github.com/llvm/llvm-project/commit/07292b7203e31fb90d9180bfccde0d4e84be2245, which was committed by @nikic
Compiler explorer: https://godbolt.org/z/noEEWf5MM
```llvm
% cat reduced.ll
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define void @f() {
entry:
br label %for.body
for.body: ; preds = %for.body, %entry
%0 = phi i64 [ %dec, %for.body ], [ 0, %entry ]
%h.18 = phi i32 [ 1, %for.body ], [ 0, %entry ]
%dec = add i64 %0, 1
%rem = urem i64 %0, 5
%1 = trunc i64 %rem to i32
%tobool3.not = icmp eq i32 %h.18, %1
br label %for.body
}
%
% llc reduced.ll
While deleting: i64 %dec
An asserting value handle still pointed to this value!
UNREACHABLE executed at /tmp/tmpi78wpw36/tmp3ncswa62/llvm/lib/IR/Value.cpp:1246!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/llc reduced.ll
1. Running pass 'Function Pass Manager' on module 'reduced.ll'.
2. Running pass 'Loop Pass Manager' on function '@f'
3. Running pass 'Loop Strength Reduction' on basic block '%for.body'
#0 0x00007fdb13f166cf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0x9516cf)
#1 0x00007fdb13f13bf4 SignalHandler(int) Signals.cpp:0:0
#2 0x00007fdb131da090 (/lib/x86_64-linux-gnu/libc.so.6+0x43090)
#3 0x00007fdb131da00b raise /build/glibc-wuryBv/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#4 0x00007fdb131b9859 abort /build/glibc-wuryBv/glibc-2.31/stdlib/abort.c:81:7
#5 0x00007fdb13e26cde (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0x861cde)
#6 0x00007fdb1416ae87 llvm::ValueHandleBase::ValueIsDeleted(llvm::Value*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0xba5e87)
#7 0x00007fdb1416b82d llvm::Value::~Value() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0xba682d)
#8 0x00007fdb1416b9a2 llvm::Value::deleteValue() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0xba69a2)
#9 0x00007fdb14096174 llvm::Instruction::eraseFromParent() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0xad1174)
#10 0x00007fdb150ce4e3 llvm::RecursivelyDeleteTriviallyDeadInstructions(llvm::SmallVectorImpl<llvm::WeakTrackingVH>&, llvm::TargetLibraryInfo const*, llvm::MemorySSAUpdater*, std::function<void (llvm::Value*)>) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0x1b094e3)
#11 0x00007fdb150ce929 llvm::RecursivelyDeleteTriviallyDeadInstructions(llvm::Value*, llvm::TargetLibraryInfo const*, llvm::MemorySSAUpdater*, std::function<void (llvm::Value*)>) (.part.0) Local.cpp:0:0
#12 0x00007fdb150cece1 llvm::RecursivelyDeleteDeadPHINode(llvm::PHINode*, llvm::TargetLibraryInfo const*, llvm::MemorySSAUpdater*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0x1b09ce1)
#13 0x00007fdb15001692 llvm::DeleteDeadPHIs(llvm::BasicBlock*, llvm::TargetLibraryInfo const*, llvm::MemorySSAUpdater*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0x1a3c692)
#14 0x00007fdb15627243 ReduceLoopStrength(llvm::Loop*, llvm::IVUsers&, llvm::ScalarEvolution&, llvm::DominatorTree&, llvm::LoopInfo&, llvm::TargetTransformInfo const&, llvm::AssumptionCache&, llvm::TargetLibraryInfo&, llvm::MemorySSA*) LoopStrengthReduce.cpp:0:0
#15 0x00007fdb15628b92 (anonymous namespace)::LoopStrengthReduce::runOnLoop(llvm::Loop*, llvm::LPPassManager&) LoopStrengthReduce.cpp:0:0
#16 0x00007fdb15e40dbb llvm::LPPassManager::runOnFunction(llvm::Function&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0x287bdbb)
#17 0x00007fdb140e9921 llvm::FPPassManager::runOnFunction(llvm::Function&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0xb24921)
#18 0x00007fdb140e9b69 llvm::FPPassManager::runOnModule(llvm::Module&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0xb24b69)
#19 0x00007fdb140ea412 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/../lib/libLLVM.so.19.0git+0xb25412)
#20 0x0000562c805e44c9 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#21 0x0000562c805da126 main (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/llc+0x11126)
#22 0x00007fdb131bb083 __libc_start_main /build/glibc-wuryBv/glibc-2.31/csu/../csu/libc-start.c:342:3
#23 0x0000562c805dac6e _start (/zdata/shaoli/compilers/ccbuilder-compilers/clang-07292b7203e31fb90d9180bfccde0d4e84be2245/bin/llc+0x11c6e)
[1] 2969443 abort reduced.ll
```
This test case is reduced from the following C code:
```c
int a;
long b, c;
static long *d = &b, *e = &d;
void f() {
long *g = &c;
int h = {};
int *i = &h;
for (;;)
for (; a;) {
*i ^= --*d % (unsigned long)5;
*i || (*g = 0);
*i = 1;
long *j = e;
e == &j;
}
}
int main() {}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWV9z27gR_zTwC0YaEODfBz9ItjXxjH31xDnfYwYAIQkJCLAAaFv30M_eAUiJpJxc07RzdVuPwpDYxWL3t9jFn6XOyZ0W4hJka5BdX9DO7429dHtqFvuOLpS8YKY-XCrFIbfU7UUNjYZ-L6AXzkNOnVgCdA3Qqn-upRPcixp6A_fetw6QFcAbgDc76fcdW3LTALxR6vn436K15ovgHuANN00jwwsqcIVZgRERJNmyCtVVUiK25bwWqE5FmTKBcZoBfAVf9pLv4Qt1sO8eBmcHCFKk5VfJ4VS7K9O0UgkLxWurjBUWkNW5mqZmRvmlsTuAN78DvNHm5ua3bXZ_P5UEctT_oiV9E84gpx5aUXdc1Eul-nZP7U54WFNPFT2YzkNAriHAWCwaQFZi0eICAbIiOD7CZzL_DG95Gh8LeXpJcAnIKsHlYlui4U3HpvzYPU8Xj4EN45kq3spWiaMar2X-OU8Xnf6qzYteKKm718VOd6de_bMWW6kFfDayDuBuQZBbQVCse7rQ3h4CjPELMgsVZUJBgLOtscswjabiTm1kBQFZw9aK2g0qjR3wVfjsRfdywzeKfO1eQpmnEGTr0FgLPrAfe0OQXcembA3RVFQkjOL2y6QcJRIcOyQ_KawWPMqidd1rh7PInkx4rGgiTxdepkzZhCmJLN52mh95Ars3QcWBD-DMG2aMIktt-nkledNC8dfejt62QduTBn_gmuL6NJfHSR2C_3xS_7aXSsBaKOGl3gUnDjoGN0SOlYbUOWEDHT5T1Qm4p7pWAjovlYKtkXpIFH4vXc8C8KDlr798vFldfVit726geBW8C6zUQ4A3vmn7pyzKl_aF5P0X0dy90BxPsotkAG9uPwK8eQrCl7xtY5yk-Wmch7ub1eMNdB1rpIcUsm4HrWiN9T-VwaRznXAAbyDVNZSaq64WMV3G7AkZ5V-9pfyYNB895V9h3TXtKXLQEqDqwZqdpQ2kdtc1QnsXwwRvfg9ZBOBNSNBK9ikzZrQwJuesk6oWdjFrVVTvFj-eUTdM6mjYW6cnQbWPndbBpS11DgJcbDrNvTQaPoSGe6rpTliAi7BONKbuQqLBxUQULgbj8bfE3RnTfkvU9jgMwEWffopeCvmulEdvhd75PfwYBg-dB1mMOskhU4Z_jeKmCac4hRZBEL0ihFCxrVlCtkme8y2MficrQFbu4PqXByu1j578FFwLcDkyWfry2ThvBW0AzkMkSu1j3gzp80_053J5iggl2d3d0_3SmWVSLdEuLLlr9FplSc63AFcjAskZAoRtU_god5qqDzGWLcDlYFDf7IYgQ_HfSRCeCUpqiio0QNDrNCxCk8UnEHjQMY_apQRVaKYceSMTMWipdGHCbSJ0IWiDmMVLZw_r59MnXpIkoB5VPoLjDq4WbYC40_K1b3iOeugufEbRSw7IKgvrczJqks41YVWZVZCykER-VBNf9zjEXnGQMgwymY3ZbBCBc16LdziLyjzhtZg5Kp9qniY5FWUxiaOYm_vptKZOTBpv3XVYYEQ9C6mnfqFYvc8oYjQTZTGzvzizn5W4Pre_f_3bYFv5Xm3LS1zPbCvPbaso_rZtca8g3r2BFcUzA6uZgajKkyKdGHirnbfD4hIbhKVObKxpHqgVITO-U1NpnSRFejI1JPvZepchLlJBJqZ-FLyzTj4LdejD8pOVz5Kq8EnrCRBuFq6PDVXqSXBv7G3TKkCuRtpvgsY186vUu6cPgNwMa-TI8SmeWO4ks9QebvXWQG608zH8p3z3ojH28Pi4-rWtqQ_rUmRwvu7px-0DIFf9CeY7GSXq8B79lTBUpYLMHJacO6zC1b_usBGN9-GIZUutX4a1H94ZTtXbHUbAAp9jwUXyR1gECB4-3P5i6vmG7dT277T_vU4oLpLZhCJzEFGSV9NsPkNuPmnWYUu9Djvq_wPkKOF5hWfIzbaAWY4LnJL-3CHCWeR4FJlhFghvULh9-tVF_c8S4SOnitqbZ6O6_iRzRr82jdTUG_vJCvGGGoYK0H8nv36yVLutsc3UPWecK-e6pg1jX1G-fzvEGze_4Tg5ePDsFJgeqm-HdnaGbckqHKYF1UYfGtM5qGkjXBvPXtVo8Fz2cB7r9F90D_w_8sTdQziGnk6h-T-j8mzLm4kU1Yx9V_So2PEsPVNubMzfZzzgsmA1Y7N4mO95kagqPE3Hm_8pABhOKzzPpOW5_SyvfsD--3hhMrP-2PR-bWd5NbP9bMssaJpMVxEldpQfhtV2RKHfHA5I_HchkKXJbDXAx510lmNeokykKa_goMzJxXxP-zXuPO_cPd1fGe3Fqx9sVop_M83gZD5OTROcw4ZK_afDpBTv18YkiTqPOp5d_TCGSgI_f1aS8c_OU-s_Dwr_0EUJd93RKf1rJEY58daEpLFsMg5PziHiuYD9wP9BkHg-XpGAbJ2A7BriKq_SlAwXR_3f-Q3sqew0LaV82ks3luOgdMducGtNE2-ft0Yp8yL1Dl5BHra35LyONdzaS-0hBWSo6Sijd5CF6clPbc5TLzmMJIBX9VCzyVlfZlgd60p5feoSN_pvCkbwJGN37DKOAmHQZN8TijUors9IAK_ksdt-QtsaG_1K1uF3OsnDKaW3cK5L-OtlZjdB7GLRG4ez0KnTsU5aR5UBrrLJiGPP4goUV_2sGmyKN5bfYiXXMDkjHNH4EqlipEZEB1O_zDqN9ZrjS4AmxNME7BPP0dUX9SWpK1LRC3GZFKjCCJcputhfIlxkaSnKbcUQQ1VJ8mLLSpwWW5wXZZFcyEuMcIowrhJEUoSWKGOipjkqtyXmCcEgRaKhUi1DOlsau7uIFZHLkqQovYhVJxdrzRhr8QIjEWAMsusLexlrKazbOZAiJZ13oxQvvRJjFRqQFfzZ-tJFZ9Xlzxd2oiV_DwAA__8E6jP5">