[PATCH] D107823: [DebugInfo][InstrRef] Honour too-much-debug-info cut-outs in InstrRefBasedLDV

Jeremy Morse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 10 06:46:40 PDT 2021


jmorse created this revision.
jmorse added reviewers: Orlando, StephenTozer, TWeaver.
Herald added a subscriber: hiraditya.
jmorse requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

VarLoc based LiveDebugValues will abandon variable location propagation if there are too many blocks and variable assignments in the function. If it didn't, and we had (say) 1000 blocks and 1000 variables in scope, we'd end up with 1 million DBG_VALUEs just at the start of blocks.

Instruction-referencing LiveDebugValues should honour this limitation too (because the same limitation applies to it). Hoist the relevant command line options into LiveDebugValues.cpp and pass it down into the implementation classes as an argument to ExtendRanges. I've duplicated all the run-lines in live-debug-values-cutoffs.mir to have an instruction-referencing flavour.

(This limitation could be avoided eventually, for example by making LiveDebugValues an analysis that is consumed, rather than having to realise all its information into debug-info instructions).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D107823

Files:
  llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
  llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
  llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.h
  llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
  llvm/test/DebugInfo/MIR/X86/live-debug-values-cutoffs.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107823.365460.patch
Type: text/x-patch
Size: 8927 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210810/05977f16/attachment.bin>


More information about the llvm-commits mailing list