<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54227>54227</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang crashes on valid code at -Os and above: Assertion `(EarlierIt == SinkAfter.end() || EarlierInst->comesBefore(OtherPrev)) && "earlier instructions in the chain must come before later ones, " "except for the first one"' failed
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zhendongsu
</td>
</tr>
</table>
<pre>
```
[517] % clangtk -v
clang version 15.0.0 (https://github.com/llvm/llvm-project.git 30f1cef86b56e0bae5b78ceed05a7fdbad4959a9)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/opfuzz/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
[518] %
[518] % clangtk -O1 small.c; ./a.out
[519] %
[519] % clangtk -Os small.c
clang-15: /local/suz-local/software/clangbuild/llvm-project/llvm/lib/Analysis/IVDescriptors.cpp:925: llvm::RecurrenceDescriptor::isFirstOrderRecurrence(llvm::PHINode*, llvm::Loop*, llvm::MapVector<llvm::Instruction*, llvm::Instruction*>&, llvm::DominatorTree*)::<lambda(llvm::Instruction*)>: Assertion `(EarlierIt == SinkAfter.end() || EarlierInst->comesBefore(OtherPrev)) && "earlier instructions in the chain must come before later ones, " "except for the first one"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /local/suz-local/software/local/clang-trunk/bin/clang-15 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj --mrelax-relocations -disable-free -clear-ast-before-backend -main-file-name small.c -mrelocation-model static -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/local/suz-local/software/emitesting/bugs/20220305-clangtk-m64-O3-mllvm-enable-constraint-elimination-build-140809/delta -resource-dir /local/suz-local/software/local/clang-trunk/lib/clang/15.0.0 -I /usr/local/include/csmith -I /local/suz-local/software/local/include -internal-isystem /local/suz-local/software/local/clang-trunk/lib/clang/15.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -Os -fdebug-compilation-dir=/local/suz-local/software/emitesting/bugs/20220305-clangtk-m64-O3-mllvm-enable-constraint-elimination-build-140809/delta -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/small-12944d.o -x c small.c
1. <eof> parser at end of file
2. Optimizer
#0 0x000055f8bd6387af PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x000055f8bd635f6d SignalHandler(int) Signals.cpp:0:0
#2 0x00007f78a3425980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
#3 0x00007f78a20d6e87 raise /build/glibc-uZu3wS/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
#4 0x00007f78a20d87f1 abort /build/glibc-uZu3wS/glibc-2.27/stdlib/abort.c:81:0
#5 0x00007f78a20c83fa __assert_fail_base /build/glibc-uZu3wS/glibc-2.27/assert/assert.c:89:0
#6 0x00007f78a20c8472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
#7 0x000055f8bc6f2c8b llvm::RecurrenceDescriptor::isFirstOrderRecurrence(llvm::PHINode*, llvm::Loop*, llvm::MapVector<llvm::Instruction*, llvm::Instruction*, llvm::DenseMap<llvm::Instruction*, unsigned int, llvm::DenseMapInfo<llvm::Instruction*, void>, llvm::detail::DenseMapPair<llvm::Instruction*, unsigned int> >, std::vector<std::pair<llvm::Instruction*, llvm::Instruction*>, std::allocator<std::pair<llvm::Instruction*, llvm::Instruction*> > > >&, llvm::DominatorTree*) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x2b99c8b)
#8 0x000055f8bd90d232 llvm::LoopVectorizationLegality::canVectorizeInstrs() (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x3db4232)
#9 0x000055f8bd90e906 llvm::LoopVectorizationLegality::canVectorize(bool) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x3db5906)
#10 0x000055f8bd869cb3 llvm::LoopVectorizePass::processLoop(llvm::Loop*) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x3d10cb3)
#11 0x000055f8bd86cd11 llvm::LoopVectorizePass::runImpl(llvm::Function&, llvm::ScalarEvolution&, llvm::LoopInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::BlockFrequencyInfo&, llvm::TargetLibraryInfo*, llvm::DemandedBits&, llvm::AAResults&, llvm::AssumptionCache&, std::function<llvm::LoopAccessInfo const& (llvm::Loop&)>&, llvm::OptimizationRemarkEmitter&, llvm::ProfileSummaryInfo*) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x3d13d11)
#12 0x000055f8bd86d2a9 llvm::LoopVectorizePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x3d142a9)
#13 0x000055f8be8603c1 llvm::detail::PassModel<llvm::Function, llvm::LoopVectorizePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x4d073c1)
#14 0x000055f8bcd9e67c llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x324567c)
#15 0x000055f8bb23c071 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x16e3071)
#16 0x000055f8bcd9e09a llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x324509a)
#17 0x000055f8bb23c9d1 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x16e39d1)
#18 0x000055f8bcd9c854 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x3243854)
#19 0x000055f8bd9754d0 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile> >&) (.constprop.836) BackendUtil.cpp:0:0
#20 0x000055f8bd9784a2 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x3e1f4a2)
#21 0x000055f8be68534b clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x4b2c34b)
#22 0x000055f8bf590af9 clang::ParseAST(clang::Sema&, bool, bool) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x5a37af9)
#23 0x000055f8be683e48 clang::CodeGenAction::ExecuteAction() (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x4b2ae48)
#24 0x000055f8be01b961 clang::FrontendAction::Execute() (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x44c2961)
#25 0x000055f8bdfb5f0a clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x445cf0a)
#26 0x000055f8be0e97b3 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x45907b3)
#27 0x000055f8baf79d11 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x1420d11)
#28 0x000055f8baf75ba9 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#29 0x000055f8bae9be89 main (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x1342e89)
#30 0x00007f78a20b9c87 __libc_start_main /build/glibc-uZu3wS/glibc-2.27/csu/../csu/libc-start.c:344:0
#31 0x000055f8baf7571a _start (/local/suz-local/software/local/clang-trunk/bin/clang-15+0x141c71a)
clang-15: error: unable to execute command: Aborted
clang-15: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 15.0.0 (https://github.com/llvm/llvm-project.git 30f1cef86b56e0bae5b78ceed05a7fdbad4959a9)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/opfuzz/bin
clang-15: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-15: note: diagnostic msg: /tmp/small-20a3d2.c
clang-15: note: diagnostic msg: /tmp/small-20a3d2.sh
clang-15: note: diagnostic msg:
********************
[520] %
[520] % cat small.c
int a, b, c;
int main() {
int e = 0, f = 0, g;
L:
b = (a & c) | e;
c = e & f;
f = b * 2;
e = c + 1;
if (f)
goto L;
return 0;
}
```
Compiler Explorer: https://godbolt.org/z/rc1jva9ez
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztW1tv27gS_jXOCyFD98tDHhwnbgNkN0GT7QLnxaCkka2tLOlQlOv0158ZUrYlxU3SbgLs5RROrJDDmW8uHA5FNq7Sx_OJb3Yf83JizibehWcFE--STWyPJQUvV_ILM7a6V_3NtiCavCqZ5U3NqYmE4VrKupk4s4m9wM8ql-s2nibVBv8oiu3-y6hF9QckcooEzDEzK4Es9GPPBzPm4MVBmACkpseDLI156kZexKOJHWnZD1ysQKIQtgv9pe8abfmlrL6WRpGX7c5YlW1HtxbAU7apUiiIuq6afKe7rstG8qKA9DIX1EW4qoQX-N2034z9c1Vn7bdv-BDnpR64qNoyZQkv0zzlEtiH-ZzlmhmXaIqOWdsIYpnHZIQkwd-5H_o9gPYi_JMMO937LP13YDlF17492-AdWL4P0s5N91BgvEL6VhDnB3CbtpA5DURG04lzMXHNje8-R-XYHRk-PEO2O9Dt9oQHLZ4TqiZ-uJ_4p9oOyeDWYs0GLTFNkAcyshd8WrWyNyY6wSd6yqc58DlmF8PynpmaTZXJr1wAPirquM2LdJReeklHOWZW8uKxyRt8vP58CU0i8lpWopkmdY2iIlsJVEMwgzmzT5C0QkCZwJFY9-TNIheNvBUpiCMV5r_j4LuP179i5pnYmAvnPaY3VVU_afyF158RMLGfH1spS4k2UWE2HjHqc64mtj-kuKw2ecmR54MADSPSHSSDb-KUD_COhUXEE80xaxoQ1MpoabDDKy6KHMS1ZBPnEj_sPi-_zDIJYgoleiDEoWwSzPHD9rTI2kB2uA5AcwFZRW4Lb-UaxJ2ALcmiMaSAj1826GFqnnWQGvyD4QCWrDk-bdpGMmLHYsWO4WTEAVUJDRkBeSg-uwRqyZBADc3IZUSDXRM7YBnPcQWY6pC7u7ma3V-xpo03uCZxFrcrJqCuhGSyYj-2rFG6b5qWsCwYzk3EnhRtCloBwZs1i3nyRQpOMTNnNQoSVQJo6ZQ1VSt0M43kTVMlOac5K9qS6SjsIN9LZMLSdkPBq5tM7IruRLUSfMNwmWw3UMrmddNo36QnHxq-_NKtfPs2y2NGklgMO_O6gO8uv8wANKJRxX8ww9gIKPjOwN_IX7vSSPOGxwUYGUYmsizQ4QbHGNHONMg4GEvM2KCvjQy9ZJQcfd3lCKZ4dtwMtbwzTMgyp54MNQejrvISAwLDs0R_MyPbcLk2QIiywj-y2kiqksyPVcQlRraRlZUhaNXIUU2iRU5IosOvQnBFzhtA5Flbfs3L1JCEHw17aaM1VD1iJHVLFjF8F5vaElTDCkoQChgFCFkOuDQatLQ2QL6DlHCRjMZAT5SIAA0EGH8rEMQIG1DOKo1RelJhycVXyLva1LlegdCapOjLDianQCOJH_q1XVF42qZtm47pGV0uNnAZMG4dDdeAUqHUlkBfSAOKXGUVkqtSrmG5ZmjiBF6gGyRn6GgdwQTrp6NO52vVht9deWlc91bablg3s4i4QfXWHdErhe7npaGiBVcHI28eGwmbNwX-kqCTGj1L-poyw15Mp09_nSB_KhB29JA8FXy09pjP86N_XISqCYxMzYO_cLBneuoSnWRWhA1oi8To9kUI1J3aU0tN3ALp0pyvygpRJajcVi34-TdA-FU9aGiKGsfwNEU2mA0ul0ssO5cfZ5-vlpe_zz4t7OV8cb2c3f-CEpB7ReaTuAygBShFGpYduW46xVy3Y8mwtLJohcAKAKoMV2RWc4HLO-OSUcKtMkbZVlPaRHlbS9TtG6ZS1YaCHJOZOxP_eV4WxqnvhAHP2J1Ag6kF6YFWtft8hV7-iCtYgUPtcFvlqa4qmO7a11ym-jnwtka8vcxP2ZgZSnqRkd0xCrIg5I5re1FosuUSkxOaGJa4qqtKpZtKJ2YFdtRSbSCnTUXT6cLcoVlD87ANJTFOX4xtpj6EAcPgaYCpsNM16QqZJUb7n9b5en_4057aATlMabGfnjgbUqgpVjHv73TDVqFBZPitWFO1PfOsocLuCEkYZBbjcaU0fR0SmWprqFFKSDgS4g2FJKGTcbQqVyXikuqpZcxfr7sed3jQIqOhSH8s0g3sV_guIa_5ymuOiUMGXgv6UZb4mZ2E8d-z7B8W_FA2gCxfYNaWFHNAVak8zeC6zKoXmKgJTZuO_vgUJIbAkNcdz1_SbgAIc1LHF-NRj9juTXRoqV9m-uxOqcccUyNVkm_Jn_V-XrMr24fzny_PVbzbcRRhQA8iPhzk1chMKUMOg_Nzt_qo5e4GVljyykfdnfBy3wtK22a_zXtT4E4au4hrADwaAYfI9H8OOGKNq6p4F9geojrApmVsuEaGfpTEzndgwx1mvy7s9CZQp4rwRO54e-iWicgG0K0R9CTFpheho4zrTV0MYOMa1s2K0Ry4p-2PuNpWRXuyn2SoHDTu0G9-scIoG9wobk7SjCbYqPcCbfNlIeC_LWbux2eE3OSx4KKjeJJoN1iMQHqR4956PHyG60fTFqd6mgb36qTxnCfrPbZD0sn25uonHjLFLKGoICRMFaf6LcmT-PC7dzZjsV0Jp6bHJ0QuvlxhtUq74zHlnaio_LtvN5u-6u8QdfixBlFnj6IutXn0qqh7XcTt3_z9wkvcPQ9z-2FQZ7t3UNe1e8cXpK7TVxdC33QS6zsLKWn7iz7COAX6ycQZmmnkX8A6awupNgc0P2Ukpl8M_l3M76ZmgNYdmN8dFIBpBH6Q9O1EJn8O6r_AbI7temiVgdm8vtli20nM4C2i9v3M_f_ot3xw0EsDN_rj6Dcj3t-UVGlbwEO1h0bumaX8uAsaK64H_JDa3ZB3jF3UaaB0MI7dKP2x2N1rOX-lqd4q9g6m-n7k_eUcQFGH9h04IBxFXRJ67iuSwCmz_9PMhfHqoDUG5hptfAIP1zESy8uqfNxUbcPoSKSp1RFSd7BHdR0d123i4vEjFDV0E_ZTW_aLwLu8hiKnY7BQv6jWlbE-dJkdUu6hMG3LHMvlZS2HNhH867L-KnIJy4aONTaDQSlkHKvgJU4jkPDCwMFe-SW5D7iLu21l3cpFriPjNUJHo3oSlTenqrLGDVg9DR3V2NnjN5kXT18x0htGc-Sh0OU26xmUvNEx0YKH9r48vgu-KlfKHUr9HslH4CmIe-AiWd_W-uxsvwMYkc4xX32A8gUqvbV5gegGn06R9PZvUuTl6hNkp7Jht1v6i0XWm09ZsDL0d3_K2oOdM_ih57jxCTvM0abtZj839WtttaXVJxy_lfkoUmb3DzhGwk6-T4Ec2wkiHagy2I5lXmTyLOqrckfHBohrCPQed5ddsOhXLfvvt4bscSdARAPIzsj6DrjhiRnSRaGeoTtIWgn7wHyHV1poW444BkAHmw8wrTjyrT7QhSBnH-ZLH-n7YHQTGyEMMA4q_TSLvczkQ2PSiZy-2cHpFfhJe35fqXeJY9dLEOZAD39oa4iC2BnkaI34qM62u1YwRP9E3fd4LeLiNAuGL-PsQdXKsyCil3FJYi3pZsSgqJkJwR8pJTvzZM3FPnPPum3QsG3_Av891LBc2xy93bHDkRpezCO2t_3celBJoqfMPZ1Y6hcZ6q3iKZ1UBKUi34I4vT4PKigOUQxhxMhub62w49rIuq_w4Yy0O7WKsdoN2HJJB1O4MnEhlx2QV52TJQ2daqkDQv2oOhUfdWbmuO5A9eExKtk7sDjTgt_c21aCzA_K92_uqbNxemjVyTrdowLtc7q6Ra9QqXNGp42QPjNc3zXOugyyH9td32Jpqzjrc1TSrm2AGVvVBsDy3pTuY_wX3l3uG7esqHSaseONBLZpVopdF0V_4qM59K_VzR4eZvOP7OHjFVvc3tzc_n796we2uL65umcPt6r54rcP7NPV3e2nB_KAHnvqWlzY0Lz_7tW4AwHdCSTHYy-XB5avNMHwNoVtcie1T91N_VEWzfonPPFW_vAuPNt8eh332IbWGt4VyUvJuKri1BJC94QP7d0CpC97du2MTnAZ0MVQZtKQ7Pi4OoxmNwd3MBYrCtrX0v1PlnSXRxkcyVmiaEARZL12zR052DNm99o1ABxlXzCr155nJCg7ni_iv1WFeeKmRyRAtqJEzPumSXDZPYz-f4S-et1VBria1UUlVFU_vi1apXFVyGkl6CoSzUiRWH9seQTfztJzJ42ciJ_JXBZwrjOTuiEKDcPktOVFThkvBbqiQ3eiVOTH1VbFzD_9bu5ZK4rzn79767m2HZytz12s_CB0sIr1PcuPMj_wTDeAiDuhawURnBU8hqI5x-mA4kv4yhQLguJdnuXn-3tjloubPHcaR2bkelbgmK4VZqk1cU3c-OTFlHCQm8_EuYKkrp25ZpE3sjl2Yt6i6w6gxCF_3sp1Jc6_rdFFVblq2jMl_Vyh_x8Nk_6P">