[PATCH] D91722: [DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands
Jordan Rupprecht via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 26 17:21:13 PDT 2021
rupprecht added a comment.
Here's a C++ repro
$ cat repro.cc
class h {
public:
h(const char *);
~h();
};
int j(h);
int k();
int func() {
int l = k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
l += k();
j("");
return l;
}
$ clang++ -g -O1 -c repro.cc
clang++: /home/rupprecht/src/llvm-project/llvm/lib/CodeGen/LiveDebugVariables.cpp:128: (anonymous namespace)::DbgVariableValue::DbgVariableValue(ArrayRef<unsigned int>, bool, bool, const llvm::DIExpression &): Assertion `LocNoVec.size() < 64 && "debug value containing 64+ unique machine locations is not " "supported by Live Debug Variables"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /home/rupprecht/dev/clang++ -g -O1 -c repro.cc
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'repro.cc'.
4. Running pass 'Debug Variable Analysis' on function '@_Z4funcv'
...
#12 0x0000000008508a60 (anonymous namespace)::DbgVariableValue::DbgVariableValue(llvm::ArrayRef<unsigned int>, bool, bool, llvm::DIExpression const&) /home/rupprecht/src/llvm-project/llvm/lib/CodeGen/LiveDebugVariables.cpp:129:18
#13 0x0000000008505fff (anonymous namespace)::UserValue::addDef(llvm::SlotIndex, llvm::ArrayRef<llvm::MachineOperand>, bool, bool, llvm::DIExpression const&) /home/rupprecht/src/llvm-project/llvm/lib/CodeGen/LiveDebugVariables.cpp:403:22
#14 0x0000000008505976 (anonymous namespace)::LDVImpl::handleDebugValue(llvm::MachineInstr&, llvm::SlotIndex) /home/rupprecht/src/llvm-project/llvm/lib/CodeGen/LiveDebugVariables.cpp:814:5
#15 0x00000000085050d8 (anonymous namespace)::LDVImpl::collectDebugValues(llvm::MachineFunction&) /home/rupprecht/src/llvm-project/llvm/lib/CodeGen/LiveDebugVariables.cpp:887:68
#16 0x0000000008503983 (anonymous namespace)::LDVImpl::runOnMachineFunction(llvm::MachineFunction&) /home/rupprecht/src/llvm-project/llvm/lib/CodeGen/LiveDebugVariables.cpp:1208:18
#17 0x00000000085036f8 llvm::LiveDebugVariables::runOnMachineFunction(llvm::MachineFunction&) /home/rupprecht/src/llvm-project/llvm/lib/CodeGen/LiveDebugVariables.cpp:1236:3
#18 0x00000000081aced7 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/rupprecht/src/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:72:8
#19 0x0000000008824f9e llvm::FPPassManager::runOnFunction(llvm::Function&) /home/rupprecht/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1439:23
#20 0x0000000008829cf2 llvm::FPPassManager::runOnModule(llvm::Module&) /home/rupprecht/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1485:16
#21 0x0000000008825889 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/rupprecht/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1554:23
...
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91722/new/
https://reviews.llvm.org/D91722
More information about the llvm-commits
mailing list