<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/68730>68730</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[RISCV] MachineScheduler.cpp:1368: updatePressureDiffs assertion failure
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
preames
</td>
</tr>
</table>
<pre>
Reduce test case for a crash observed in an LTO build of spec2017 namd. This is a newish failure, but not new. I waited a bit before bothering to reduce this under the hopes that the triggering change would be reverted.
@fpetrogalli I'm guessing this is related to your large rewrite, but haven't yet confirmed that.
```
$ llc < hand-reduced.ll
.text
.attribute 4, 16
.attribute 5, "rv64i2p1"
.file "<stdin>"
llc: ../llvm-project/llvm/lib/CodeGen/MachineScheduler.cpp:1368: void llvm::ScheduleDAGMILive::updatePressureDiffs(llvm::ArrayRef<llvm::RegisterMaskPair>): Assertion `VNI && "No live value at use."' 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/preames/llvm-dev/llvm-project/llvm/llc
1. Running pass 'Function Pass Manager' on module '<stdin>'.
2. Running pass 'Machine Instruction Scheduler' on function '@test'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 llc 0x0000557d99f08b70 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 240
1 llc 0x0000557d99f05f7f llvm::sys::RunSignalHandlers() + 47
2 llc 0x0000557d99f060d5
3 libc.so.6 0x00007fb8ece42520
4 libc.so.6 0x00007fb8ece969fc pthread_kill + 300
5 libc.so.6 0x00007fb8ece42476 raise + 22
6 libc.so.6 0x00007fb8ece287f3 abort + 211
7 libc.so.6 0x00007fb8ece2871b
8 libc.so.6 0x00007fb8ece39e96
9 llc 0x0000557d992220a6 llvm::ScheduleDAGMILive::updatePressureDiffs(llvm::ArrayRef<llvm::RegisterMaskPair>) + 2038
10 llc 0x0000557d9922e311 llvm::ScheduleDAGMILive::initRegPressure() + 465
11 llc 0x0000557d99233294 llvm::ScheduleDAGMILive::schedule() + 68
12 llc 0x0000557d9921bf3d
13 llc 0x0000557d9922d322
14 llc 0x0000557d991814d7
15 llc 0x0000557d9972ee3e llvm::FPPassManager::runOnFunction(llvm::Function&) + 878
16 llc 0x0000557d9972f089 llvm::FPPassManager::runOnModule(llvm::Module&) + 57
17 llc 0x0000557d9972f9c5 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1061
18 llc 0x0000557d970dea1e
19 llc 0x0000557d97028006 main + 1878
20 libc.so.6 0x00007fb8ece29d90
21 libc.so.6 0x00007fb8ece29e40 __libc_start_main + 128
22 llc 0x0000557d970d5605 _start + 37
Aborted (core dumped)
```
```
$ cat hand-reduced.ll
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"
define void @test(i1 %exitcond6351.not) #0 {
entry:
br label %for.body2902
for.body2987.preheader: ; preds = %for.body2902
%0 = shufflevector <2 x double> %3, <2 x double> zeroinitializer, <8 x i32> <i32 0, i32 poison, i32 poison, i32 1, i32 poison, i32 poison, i32 poison, i32 poison>
%1 = insertelement <8 x double> %0, double 0.000000e+00, i64 0
store <8 x double> %0, ptr null, align 8
br label %delete.end
for.body2902: ; preds = %for.body2902, %entry
%2 = phi <2 x double> [ %3, %for.body2902 ], [ zeroinitializer, %entry ]
%3 = fadd <2 x double> zeroinitializer, %2
br i1 %exitcond6351.not, label %for.body2987.preheader, label %for.body2902
delete.end: ; preds = %for.body2987.preheader
ret void
}
attributes #0 = { "target-features"="+64bit,+a,+c,+d,+f,+m,+v,,+zvl128b,+zvl256b" }
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8WFtv2zoS_jXMy8AGRd0f8mDnck6A5DRIigK7LwEljixuZcogKSfpr18MJdtxa6fFPmwQSCI5_OY-HFo6p1cG8ZKlS5ZeX8jBt7293FiUa3QXVa_eL59QDTWCR-ehlg6h6S1IqK10LfSVQ7tFBdqANHD_9QtUg-4U9A24DdaCRzkYuVZzgK-tdqAdSDD4ql0LjdTdYJGJK6gGD6b3tDIHuINXqT0qkFBpDxU2vUWoet-i1WYFvgc7SUWYg1FowbcIbb9BB76VPgy91avVuKVupVkhvPZDp6BCsLhF65HkYvya8cX0THizQW_7lew6DXdM5GtYDehc4DtpYLGTJJ7v4b0fLHTSrgjy1Wq_V6eVWzRM5B7e0UPdm0bbNW1qpZ8f8RyfGZ_-x6FIoOtqYPEVtNKo2aiwmnfdXuBy7vHNH0bSe6urwSPjZUJiRNnpxZQWmRB2myVabCImxIGw0R3R0Fx85bzShsU3e4quq1m8gPmciduu265nG9v_B2s_DemlKyZur3qFf5H-tw-ybrXB57pFNXRo5_Vmw-JFFGcFIW17rSBsjRcsXuzIrhd_Pdzd6y2O08NGSY-PFp0bLF7rpnFMFIdtC2vl-xM2LL46TD7hSjuP9kG6749S26BHSUwXzqH1ujfAMv7tnztgImMiI5v800Ontwhb2Q0I0sPgcE7qizwELKrJeY_3N4vnG3BDtdaeInVYgcVNbz3FRev9xpEY4paJ25X27VDN6379wU7H1tPODeiYuAVpKJ3qblAYonjMtErW372VNU7sn72sv4Ma1mTMcYrPGS8fbb-ycg3SroY1Gk9CABO3bb9GJm6n1N7xV7g978iuHnEjwn0ajKEc2EjngIn8djB1sOAjTTxII1doyUi9gXVPLiSqoxDKJ9HFKbwpTODOOG-HEXofMxNus-NJyAmnkkRfP9kDXrVv-8GDe19XfUflB4lFgYaCh1I2JGeIutlIpH-gpRoW0vlx8fVv6C04HMsImq22vSFrwlZaipn7-28PL8__elh-ub_7983TC21hGSfPb3ptQghoP0bb5BwI-Tz-8TfOOU_TXJVlw4sq5x9SwL278ePRauODXl_J8UcBb-XrS-88eTPE7hVoQ_yAiSWIZKoi0cj0mF3a5M0pdk-DedYrI7u_pVEdWsqwHWIyWVmcAsy4SsflGKDTVT13_TybiPKmKrDGRKRiEio5S1RmZVPDxrcWpXr5rqnWiSXEfNqZfgKf5BlYqR2OFpjKVXZ2hyjyJgZZUb6GHVE0bsk_2xJVI1FxligusZzKbvmrsYQQXGb_13o3asfjYgoJfiYOhcA4in4vmjbaP-FqJ9vHIMmmMAgwPykex6JMfo_upukPsNlOcvEralQ1sZqW47OKqXgXD1HyC0ZURImawjtKz2DkAjHGD-LfPlLd25W9MSUH88XsyuKRtw6T2U6pIt9plf0iUS4aXpR_wOyhn0x1IN1N7RmlO9Xys6o1ZZ1-4NbhStbvUwk68L1bb7o97895RjybkikqftYu5wplhNNyeVqonIuC8wzWUpsRcW8vwc-mZ6nKqVCI6DwRJhxeXmj5xXlp_cuBidjxEOfEUmnGUxg3jrVpMu-CCgkqOmZqalbpIEJFB8AnPd6vLV8t_Zl2z1OP6UFJLzv5Tscbi6-pYcEZuQFn1AdkSXjM9P6DdIoXkShmJhbj3DPN7RJigvVWb-jEHiGtdvU2S2aD-W76VzPrtBneZiszfGgU6amwoSM7tHD787jQETCR4pv2dW9UFqfR3PTT2RRzYPly3I3G2_f9-QhQUSNdIdX8tOntnG4fouRHHA_zRT7fWGxRqpASwOIlbCwqNylxAgJomod11w5N0-EWa99barIFvIHqh6pDFt8QXRx65J8XfqDtqQBqGVqGiaaAN9Bk3hsa6VgADydyLKgbcJT4p0bRnxCdHMU3HzSKgkbaUEuLHYY2ZRLqSKMg0zgDfM7DHzKx5KOwWQJ8h-o8xfBZkI23YIauo2_Z6ZWB4pQTFXbocY5GnXYhF793XLiopGOoHFQWgXbT6hOuS5cH9x2DAUuvw3S6POnIiU8gO_CKA69GKvVn4SBS8cEY55Lh6lSsH8X0aRL-UwLuLfy5JY-QJ-ks-pC6E2B-_RF5f110U9YSYk6mFWPJmDUo_WDpKiFYfB1uSMssqajrvWJiKcdXPb7U-GrG13p8bcOLvn5su0gU1X4g0qxiQsBBqF2pvFCXsSrjUl7gZZSVWZkJHscX7SUWZZzIJqmQY17VQhRZVCWqxJLXNUd1oS8FF3HEIx4VgotsXmEaNankacRViVXJEo5rqbs5nWzz3q4uwp3sMivymF8EX7jwQ4kQBl8hLJLa6fWFvQx3iWpYOZbwTjvvDihe-y78wvJ093z1jaXX8Jsr8YnmD-T-xjr9anIx2O7yf79lBqX-GwAA__8ODkhP">