<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54615>54615</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed. when running opt -passes=loop-deletion
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mikaelholmen
</td>
</tr>
</table>
<pre>
llvm commit: 0365c54ca393
Reproduce with:
opt -passes=loop-deletion -o /dev/null bbi-67899.ll
Result:
opt: ../include/llvm/Support/Casting.h:269: typename cast_retty<X, Y *>::ret_type llvm::cast(Y *) [X = llvm::Argument, Y = llvm::Value]: Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: build-all/bin/opt -passes=loop-deletion -o /dev/null bbi-67899.ll
#0 0x0000000002d0f923 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (build-all/bin/opt+0x2d0f923)
#1 0x0000000002d0d59e llvm::sys::RunSignalHandlers() (build-all/bin/opt+0x2d0d59e)
#2 0x0000000002d0fca6 SignalHandler(int) Signals.cpp:0:0
#3 0x00007f7638922630 __restore_rt sigaction.c:0:0
#4 0x00007f7636055387 raise (/lib64/libc.so.6+0x36387)
#5 0x00007f7636056a78 abort (/lib64/libc.so.6+0x37a78)
#6 0x00007f763604e1a6 __assert_fail_base (/lib64/libc.so.6+0x2f1a6)
#7 0x00007f763604e252 (/lib64/libc.so.6+0x2f252)
#8 0x0000000001b99523 computePointerICmp(llvm::CmpInst::Predicate, llvm::Value*, llvm::Value*, llvm::SimplifyQuery const&) InstructionSimplify.cpp:0:0
#9 0x0000000001b8165c SimplifyICmpInst(unsigned int, llvm::Value*, llvm::Value*, llvm::SimplifyQuery const&, unsigned int) InstructionSimplify.cpp:0:0
#10 0x0000000002a66e55 getValueOnFirstIteration(llvm::Value*, llvm::DenseMap<llvm::Value*, llvm::Value*, llvm::DenseMapInfo<llvm::Value*, void>, llvm::detail::DenseMapPair<llvm::Value*, llvm::Value*> >&, llvm::SimplifyQuery const&) LoopDeletion.cpp:0:0
#11 0x0000000002a65301 breakBackedgeIfNotTaken(llvm::Loop*, llvm::DominatorTree&, llvm::ScalarEvolution&, llvm::LoopInfo&, llvm::MemorySSA*, llvm::OptimizationRemarkEmitter&) LoopDeletion.cpp:0:0
#12 0x0000000002a63928 llvm::LoopDeletionPass::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (build-all/bin/opt+0x2a63928)
#13 0x000000000304447d llvm::detail::PassModel<llvm::Loop, llvm::LoopDeletionPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) crtstuff.c:0:0
#14 0x0000000003534f6f llvm::Optional<llvm::PreservedAnalyses> llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runSinglePass<llvm::Loop, std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, std::default_delete<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&> > > >(llvm::Loop&, std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, std::default_delete<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&> > >&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&, llvm::PassInstrumentation&) (build-all/bin/opt+0x3534f6f)
#15 0x0000000003534b93 llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runWithoutLoopNestPasses(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (build-all/bin/opt+0x3534b93)
#16 0x0000000003534258 llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (build-all/bin/opt+0x3534258)
#17 0x000000000302798d llvm::detail::PassModel<llvm::Loop, llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) crtstuff.c:0:0
#18 0x000000000353626b llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x353626b)
#19 0x0000000003043cad llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) crtstuff.c:0:0
#20 0x000000000244b485 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x244b485)
#21 0x0000000000af5edd 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>&) crtstuff.c:0:0
#22 0x000000000244f8aa llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x244f8aa)
#23 0x0000000000af5cbd llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) crtstuff.c:0:0
#24 0x000000000244a5d8 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x244a5d8)
#25 0x000000000077974f llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool) (build-all/bin/opt+0x77974f)
#26 0x000000000078a05a main (build-all/bin/opt+0x78a05a)
#27 0x00007f7636041555 __libc_start_main (/lib64/libc.so.6+0x22555)
#28 0x0000000000774780 _start (build-all/bin/opt+0x774780)
Abort
[bbi-67899.ll.gz](https://github.com/llvm/llvm-project/files/8371686/bbi-67899.ll.gz)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWl1X4zYQ_TXmRYccR_5-yEM2wCmnSzfd0K-nHNmWExXZciWZbfrrO7KTYJlAQpe2u7QciIM1urozczWybKci30w4vy9RJsqSacebItcLgyzwM-IlnuNeOO70I62lyJuMok9Mr8GmO41ErdF5TZSiyvEuuBD1eU451UxU6FwgB1_l9B4-q4ZzlKbsPIziJBlx3vXfgauG6z0oYBoSoxH0Y1XGm5zCN0MRDoumroXU8G1GlGbVamTY4DAxXfSmphUpKcqgbSmp1hvHm_3s4Bn6BbhMHe_SjOJNoWlpjFGL2p4yXRwcd3Y4QU7w7mcEPvVMpnLVlLTSWzyr7UfCG-oEF4bGFMIh2xA4ocsUaTnA0DgGqxYbh_ALB9yO6s1uN127aSTbUZAoELgvyppolnLaeufgMfRycIQKwjjNR13I5u8vp4tLpJoUMogISpsVktQECmmB1lrXytDEV_C7ggQ26QiAH6JqDueQ4V9pZkLLlGogofgKkSpH2xwgvYbASqLWKCXZnZYko9vhFxpOoLwp630SXWhK5lKsJCn3LhkSwI3x_JyABPBVyir4_EwRgYHnIvd3d_eDc7dIsNfLjtqo7stcskq3dG8Nfwj5g5Ekn5ZCaUlJ2SZoBp7rLl3xQdIOfuf-vh0M7B7YjAds8iChh9h8bKoFW1WEfwNx5lSqrQSODWjwrAHx0P2MhMiCBsitN91pNcpqky23_dsDeVugqIhCL04wDiG0S5hKSgtJl6AnxVYkM6kZZY-7-_3uoRsEXhwhSZiiqHXtirM09LtjNlJiFLYueTBWZDkUDIBCEsWIpEbQzwJFYGcBhTaQT8cQmeWStFN0aSbRMiVH6OECOlmo0RAVB_gIBFhYEHE_ZeM0SQJQrJntjaZzAbmi8noGE6qvUPj_ulJ6J2Was4xoapQ6LESmhh0_u2BlzVmx-b6hcgODG2yj_ASZYWTT5nlndFgwie1GPIaVA-26XO8I47ipQDgVzbs59dqEZ8jGP9EBM1XtykHCkAYBWlHdEvhQXTGp9DUkgxgoKxuHKV7QStEbAiPN_pqPO4DrqhBPgtwLlrdLRr9nTjXo2UaZEyZfQsW7RC1ueKpS3kO5vthW68MRHg8iHHjuGKVQZu_eQR2m-YpeF98JfUvuqB1gA_04PKJkFYFqdCspfcwzI5zIy3vBmy5fg3YD2QZ22HBDSyE3i8X00YAfas1K9keb_4-0JPLuEhZZbUrqiQHAgwB4CY4HnHYAcyhM29WoORSMAespVPKNYuqGVGRF7UR3HYbOw9pX5UTmu57dtZcyyAfSfqSHbTu_-aHOyUNgnl_FujDsS6KJk9ePk-f6vh_lT8jbxOlGwFXCCS5bsbVaoYTCMnBPt75R9TdH93VCu7-I_eoVkkmtdFMUw0sJIwbfEkPg-UVYDGalgPEshx7nE8pZr9mI5qQ4fPmZX8DWh9OuXBwgp3TenWgq9ltDl7W2nRjOpZmoMmr2XV9pWPou57Qg0GvZ7iHoW3Yb9f6eKgX_K-G_pISvqf7PBqW5u2Q39wnI_trtyFXEdl2wriKC4cKRJt4bXQR-YnotGm2wvoMd-ry7hfJ1XxMczTek08p3OMw3DuI3mu-3nlrInJXayN4Q4CiJP3dD8Bbk8P8e5gsS9XN7mHhQmkIcpj2sq6Zqb1DdCsPAKHOak1oLeTg2O_MXxWffaev38VloSFqzMBlsy72MvGwWPhCfneT9a-m75zt6UnGvFNVnZIDtW4y-n_pxcEJJOhy2L8Xh5-_udE72ZYSt24AuKQKav4aM_r7ovTUZ4oEMi5iQ_h1QkTec3ood6NF61HV4EeFtl5NFZChaIvKGIsrSl4loR3p2ouevJYK9509L4BXi-Vz6_UH6SZCfcp18KGD_vqPHhGOcs4Rj7QrdKEoiv387ESiaAMxZTTmr7OfCCy1ZtfpIi0OqeeTFLZErqm9Itm5xpoda37NUErkxDyKuy5o_thKCf2h03egrxg-AfFbzE-5MpSQbc7Yf9gfbYT08aN6GkDcrVj2yh9wsNRDr_uvofcuq_DmrH6lkBaNyZ5ealqPHI-LoUm9pI7S1ERM3IKgkrDqC1BpaSMPnwuMgCNByaZ4FL5UmUi93sE8_KcbQxwKNB9L1o9hFHdwxV43pHmtqHp_337txgnf9tylGqz_MCyw4fvH7IgXozLwuEnvROIxDQ2SAu-Nwlk-8PPEScqaZ5nTyT74qgz6taYVgpleg6efeXDprJJ_89ZdmAj8cB2frCUnHBPskjDPi-gFOEzf0s3FAotzzoiQfn3GSUq4mkAYgWtFPqIUwpIOLMzbBLsauh5OxNw7G_ihyAz-PUjLOkxS2FtjxXQpq4iPDYyTk6ky273Gdp81KQSNnSquHRvDUPCCn7XCATxq9FnJSsjtC-VpwiONZO_6k5f8n54Cwzg">