[llvm] [BranchFolding] Kill common hoisted debug instructions (PR #140091)
Arthur Eubanks via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 21 09:22:43 PDT 2025
aeubanks wrote:
this causes `llc -o /dev/null /tmp/b.ll` to crash
```
llc: ../../llvm/include/llvm/CodeGen/MachineInstr.h:2004: void llvm::MachineInstr::setDebugValueUndef(): Assertion `isDebugValue() && "Must be a debug value instruction."' 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/rel/bin/llc -o /dev/null /tmp/b.ll
1. Running pass 'Function Pass Manager' on module '/tmp/b.ll'.
2. Running pass 'Control Flow Optimizer' on function '@_ZNK4llvm19InstructionSelector17executeMatchTableIKN12_GLOBAL__N_126AArch64InstructionSelectorENS_19PredicateBitsetImplILm27EEEMS3
_KFNS_8OptionalINS_11SmallVectorINSt4__Cr8functionIFvRNS_19MachineInstrBuilderEEEELj4EEEEERNS_14MachineOperandEEMS3_KFvSC_RKNS_12MachineInstrEiEEEbRT_RNS8_ISB_Lj4EEERNS0_12MatcherStateERKNS0
_10ISelInfoTyIT0_T1_T2_EEPKlRKNS_15TargetInstrInfoERNS_19MachineRegisterInfoERKNS_18TargetRegisterInfoERKNS_16RegisterBankInfoERKSX_RNS_15CodeGenCoverageE'
g co HEAD~ #0 0x00005563b5181068 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Support/Unix/Signals.inc:834:
13
#1 0x00005563b517e7d5 llvm::sys::RunSignalHandlers() /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Support/Signals.cpp:105:18
#2 0x00005563b5181741 SignalHandler(int, siginfo_t*, void*) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Support/Unix/Signals.inc:426:38
#3 0x00007f7cf8049df0 (/lib/x86_64-linux-gnu/libc.so.6+0x3fdf0)
#4 0x00007f7cf809e95c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x00007f7cf8049cc2 raise ./signal/../sysdeps/posix/raise.c:27:6
#6 0x00007f7cf80324ac abort ./stdlib/abort.c:81:3
#7 0x00007f7cf8032420 __assert_perror_fail ./assert/assert-perr.c:31:1
#8 0x00005563b41e418e drop_front /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/include/llvm/ADT/ArrayRef.h:397:7
#9 0x00005563b41e418e debug_operands /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/include/llvm/CodeGen/MachineInstr.h:712:52
#10 0x00005563b41e418e llvm::MachineInstr::setDebugValueUndef() /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/include/llvm/CodeGen/MachineInstr.h:2005:31
#11 0x00005563b41e28d5 isSentinel /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/include/llvm/ADT/ilist_node_base.h:44:36
#12 0x00005563b41e28d5 isKnownSentinel /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/include/llvm/ADT/ilist_node_base.h:45:41
#13 0x00005563b41e28d5 operator* /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/include/llvm/ADT/ilist_iterator.h:168:5
#14 0x00005563b41e28d5 operator* /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:178:40
#15 0x00005563b41e28d5 operator-> /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:179:40
#16 0x00005563b41e28d5 llvm::BranchFolder::HoistCommonCodeInSuccs(llvm::MachineBasicBlock*)::$_0::operator()(llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>) const /usr/local/goo
gle/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/BranchFolding.cpp:2103:7
#17 0x00005563b41e2071 llvm::BranchFolder::HoistCommonCodeInSuccs(llvm::MachineBasicBlock*) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/BranchFolding.
cpp:0:9
#18 0x00005563b41d9825 HoistCommonCode /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/BranchFolding.cpp:1813:16
#19 0x00005563b41d9825 llvm::BranchFolder::OptimizeFunction(llvm::MachineFunction&, llvm::TargetInstrInfo const*, llvm::TargetRegisterInfo const*, llvm::MachineLoopInfo*, bool) /usr/local/go
ogle/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/BranchFolding.cpp:243:34
#20 0x00005563b41e2cf3 (anonymous namespace)::BranchFolderLegacy::runOnMachineFunction(llvm::MachineFunction&) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Cod
eGen/BranchFolding.cpp:162:17
#21 0x00005563b4414f93 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/CodeGen/MachineFunctionPass.cpp:0
```
[b.ll.txt](https://github.com/user-attachments/files/21351036/b.ll.txt)
https://github.com/llvm/llvm-project/pull/140091
More information about the llvm-commits
mailing list