<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/87063>87063</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
A combination of machine instruction modifying/schelduling related options crashes `llc`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
TyeYeah
</td>
</tr>
</table>
<pre>
When using `llc`, a group of options crashes it:
- --disable-machine-dce - Disable Machine Dead Code Elimination
- --enable-jmc-instrument - Instrument functions with a call to __CheckForDebuggerJustMyCode
* --fast-isel - Enable the "fast" instruction selector
+ --misched-bottomup - Force bottom-up list scheduling
+ --misched-topdown - Force top-down list scheduling
Crash has be reproduced in `llvm-18.1.2` and `llvm-16`.
Reproduced with:
`/mnt/llvm-project-llvmorg-18.1.2/build/bin/llc --disable-machine-dce --enable-jmc-instrument --fast-isel --misched-bottomup --misched-topdown /mnt/data/acpi_listen.bc -o /mnt/data/acpi_listen.s`
trace:
```s
llc: /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/MachineScheduler.cpp:3275: virtual void llvm::GenericScheduler::initPolicy(llvm::MachineBasicBlock::iterator, llvm::MachineBasicBlock::iterator, unsigned int): Assertion `(!ForceTopDown || !ForceBottomUp) && "-misched-topdown incompatible with -misched-bottomup"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /mnt/llvm-project-llvmorg-18.1.2/build/bin/llc --disable-machine-dce --enable-jmc-instrument --fast-isel --misched-bottomup --misched-topdown /mnt/data/acpi_listen.bc -o /mnt/data/acpi_listen.s
1. Running pass 'Function Pass Manager' on module '/mnt/data/acpi_listen.bc'.
2. Running pass 'Machine Instruction Scheduler' on function '@__CheckForDebuggerJustMyCode'
#0 0x0000624ffe1e5cb8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/Support/Unix/Signals.inc:723:22
#1 0x0000624ffe1e60d9 PrintStackTraceSignalHandler(void*) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/Support/Unix/Signals.inc:798:1
#2 0x0000624ffe1e3529 llvm::sys::RunSignalHandlers() /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/Support/Signals.cpp:105:20
#3 0x0000624ffe1e5550 SignalHandler(int) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/Support/Unix/Signals.inc:413:1
#4 0x0000773ad7642520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#5 0x0000773ad76969fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#6 0x0000773ad76969fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#7 0x0000773ad76969fc pthread_kill ./nptl/pthread_kill.c:89:10
#8 0x0000773ad7642476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#9 0x0000773ad76287f3 abort ./stdlib/abort.c:81:7
#10 0x0000773ad762871b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#11 0x0000773ad7639e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#12 0x0000624ffcddbf9e llvm::GenericScheduler::initPolicy(llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, unsigned int) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/MachineScheduler.cpp:3277:38
#13 0x0000624ffcdce3f7 llvm::ScheduleDAGMI::enterRegion(llvm::MachineBasicBlock*, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, unsigned int) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/MachineScheduler.cpp:762:1
#14 0x0000624ffcdd12dc llvm::ScheduleDAGMILive::enterRegion(llvm::MachineBasicBlock*, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, unsigned int) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/MachineScheduler.cpp:1206:40
#15 0x0000624ffcdcd800 (anonymous namespace)::MachineSchedulerBase::scheduleRegions(llvm::ScheduleDAGInstrs&, bool) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/MachineScheduler.cpp:608:13
#16 0x0000624ffcdccebf (anonymous namespace)::MachineScheduler::runOnMachineFunction(llvm::MachineFunction&) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/MachineScheduler.cpp:445:3
#17 0x0000624ffccde992 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/MachineFunctionPass.cpp:93:33
#18 0x0000624ffd4bf692 llvm::FPPassManager::runOnFunction(llvm::Function&) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/IR/LegacyPassManager.cpp:1443:20
#19 0x0000624ffd4bf968 llvm::FPPassManager::runOnModule(llvm::Module&) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/IR/LegacyPassManager.cpp:1489:13
#20 0x0000624ffd4bfdc9 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/IR/LegacyPassManager.cpp:1558:20
#21 0x0000624ffd4baa44 llvm::legacy::PassManagerImpl::run(llvm::Module&) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/IR/LegacyPassManager.cpp:541:13
#22 0x0000624ffd4c06bf llvm::legacy::PassManager::run(llvm::Module&) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/IR/LegacyPassManager.cpp:1686:1
#23 0x0000624ff9ef0ac2 compileModule(char**, llvm::LLVMContext&) /mnt/llvm-project-llvmorg-18.1.2/llvm/tools/llc/llc.cpp:745:34
#24 0x0000624ff9eee2da main /mnt/llvm-project-llvmorg-18.1.2/llvm/tools/llc/llc.cpp:412:35
#25 0x0000773ad7629d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#26 0x0000773ad7629e40 call_init ./csu/../csu/libc-start.c:128:20
#27 0x0000773ad7629e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#28 0x0000624ff9eecfa5 _start (/mnt/llvm-project-llvmorg-18.1.2/build/bin/llc+0xae0fa5)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWV1v47jV_jX0DSFDor4vfOE48bx5kaBBZrZFrwyKpGRuKFIQqZnk3xekZOsjnuxMZtN2gQZBYlPkw_OcL55DYa15JRnbgPgKxNcr3JmjajdfXtg_GT6uCkVfNv84Mgk7zWUFQeILQUDiA7SDGFat6hqoSqgaw5XUkLRYH5mG3IBwC_xr4G896HmUa1wI5tWYHLlkHiUMnn48eN0_hff9U3jNMIU7RRm8EbzmElvsEYxJh_V7TTwutWm7mklzBrsdh8pOkl6sb9wcIYYECwGNgofD7sjI016116zoqoq1_99pc_9i9-z3AWgLPa_E2nhcMwFf_3jwxskBzZFBgJCdCxCCvUhuX6iZYMSo9oR5BT2v5pocGfUKZYyqu2aOuVctYbB_5nUNFFwb6BZ0gsvqEpBRDVXfJLwEZFTjuYeXcdzfnTUZPGINCwZb1rSKdoRRyGVv7a-1F2TrYI1A4kMs6TiagMRfT6Eex9VW42cXcP6yr6UBaO-WNq36nRHj2S-qrU4boH3RcUHtfy7dXPId5_meF0xtdkHXr7V2lotigwHaY9Lwg9UWk-uCQE-9OUNbZhMFmBYTNqPtfnX_HdrQCbfwB3VhB-w_XgC0t675iVmlDFHyuTcma9ekaUC4DVEaW_CvvDUdFvCr4hQ6iHALwu0nJlnLyXlVP8olNw9KcPICUDZOHra4wpqTK6HI0zDbsBZbd0Y7-FOTO-mSjPUpA1BuxdxqzVoXJM45MoAC57JfVHPt7JLuQLqDp-ErZ8HfGoByCFACUGJj7pU1uSSqbrDhNjBd0L_yAYAQQCksMReMDt77cHez_XwDdVfU3EAMi66ykaBaY7PF0ZhGW1JoD9C-4ubYFWui6omJJnYEaM-17pgGaO_ChUsiOtrnCZceYYHJk_OUYfvPBpMnSLu6ObuOv-4D-aFVVYtriNvKObj-Cf_5y8WSYx4MzB87Ke2J02CtIUDpfkjm8MEO3GOJK9ZaSyoJa2V92s56WwSA0kHlaP1qg9PpcztJ4GO49BudThS3VeS_eY6gdIh6gEIf-s--7_sJisqSBSwmRTYJIf2i-w8PLZfGucMXl0mmQdnibwelTctw7SJgN0TTu9LJ566x7g3Q_jfJn-0AryQWes2lTVEpCkG4RWhkECwYJD7N4ULcHuP_sKROY5lNQQBtP0rGPAPhNhhFRAsRwxjll5T82MmZpNqln1-V8SRcn40D3yZj5I_ShUsXiGMfLjX2cRaNgnCurWiQJ01DTNMkQjHyodPEAPicJYck8gSX3bNXya5_QNZarROArvxnt8Sm8zNmPMfMk7wk8HBozLFlmB6euBAHXjeC2fziqjq4BmgvGyMA2k-nrZ3MkTVzMuInP4IvDWslFm8ip851JtZJLyFPl70Jl-ULuGyp3ChNYKWdRRxS_xGg_dp9e9GUNfbEaJR2xmsx18xhoxSE24kO8jk0ytIyhLiwZ5WDMrQ3nxvqpQss41PpGAb-K4SggAcpDkJheqCqxry3C5eOrh2udUVwDxcEqRUpHwGDOWCYszz5OVdyS86uZDFnwUwoLcqc_WI54xL7VWdj7fZUnIS7y9Nsei2x0AyENxfLnV8BW5RDH1YPWjOF2ajTcK5TwsIynTA7IVxvP93f9kPMBtMjq2z_9XaBaNP8n6ymv57O0wSNSdZqPFp4cYAo-Z7G7_hX9j-tv0PrAfITe1r4o97jhafTzHeHG5ZKvtSq01DimunG1Vj5jMcZ_QrrwR5D38x6k-iZTSYmdBrQQ21WKCU-jHHiu_MrHAknC8KEFeXPEh7KzE7-TQ6PTjX3JS8cnyUfxjOKbBU1oZnOaBLK8hy99tiTaLZTmJC6yOYjaEz3H5jktvoKJ0yyKRMaFWUyY7J_sItPXc7Hc7h9BGh_xypMXiYbnwIsisJJNWvFz5fi50n2A-Lfu0Zt7k7D0EeJ3tdmo-aRvxSdkvwPQ-W_hk8cZ3NToGDBB-MomphCOKShvRzxbutGnIn8GwnEUbCwB5rLT_ykKP9Y_v-E7EGSJbPzHc0qqpyVPiYIElU3XLCzb5Ajbt1JvTis7-7-fr9T0rBn8y6JjVJC9zc7_d9TFdJnzWgUM5qLyRiiGLoy_8_ZMQps3RPG446LThDlNPfh4WCr_oM2uDUHgoU4nFsNorvXzdDQbl1atD5aX3KnYDLumix3ZZHvLv0PtjNYbtR_tOieQ--7G7SMr_QS6IzKJRYXwcPU5pOJmrKFYUiJY9ijDg3Uuy76XE-FmV_i-NxUbW0_yKiFJapl7rqR0bHnOt1Vr-gmpHmY4xXbBGkQpEGahsnquInLJCvLJEnTEsdhUZQoohFOs4KiNM9JvOIb5KPID1EehH4WJ-s8DTPsxznDMaUhLkDksxpzsbYM1qqtVu6mdJOlfhKuBC6Y0O49FEKSfYPuIUAIxNerduNUUHSVBpEvuDZ6RDHcCLbZ2sArhrdFUJVwuOOcvZGpFeXlC5eVdTRyZKJ_HwJbJrDVzvI91vl916prxeb9N8GO4r8CAAD__9EdiX4">