| Issue |
87063
|
| Summary |
A combination of machine instruction modifying/schelduling related options crashes `llc`
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
TyeYeah
|
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)
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs