[PATCH] D94631: [DebugInfo] Add support for multiple value references in debug values, and enable salvaging

Stephen Tozer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 13 13:07:57 PST 2021


StephenTozer created this revision.
StephenTozer added a project: debug-info.
Herald added subscribers: dexonsmith, jdoerfert, pengfei, ormris, tpr, hiraditya, jgravelle-google, sbc100, dschuff, qcolombet, MatzeB, jholewinski.
Herald added a reviewer: deadalnix.
StephenTozer requested review of this revision.
Herald added subscribers: llvm-commits, aheejin.
Herald added a project: LLVM.

This patch contains the complete implementation of DIArgList, DBG_VALUE_LIST, and salvaging of Binary Operator and GEP instructions with non-constant operands. This is not intended to be an actual review (the stack of patches culimating in D91722 <https://reviews.llvm.org/D91722> are the review patches), but an easy-to-apply patch for anyone seeking to test, poke around on, or add to the new feature.

Note that currently one of the tests added by this patch fails; the test is being rewritten. All the other tests (added by this patch or otherwise) should pass.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D94631

Files:
  llvm/docs/LangRef.rst
  llvm/docs/SourceLevelDebugging.rst
  llvm/include/llvm-c/DebugInfo.h
  llvm/include/llvm/BinaryFormat/Dwarf.h
  llvm/include/llvm/Bitcode/LLVMBitCodes.h
  llvm/include/llvm/CodeGen/MachineInstr.h
  llvm/include/llvm/CodeGen/MachineInstrBuilder.h
  llvm/include/llvm/CodeGen/SelectionDAG.h
  llvm/include/llvm/IR/DebugInfoMetadata.h
  llvm/include/llvm/IR/Instructions.h
  llvm/include/llvm/IR/IntrinsicInst.h
  llvm/include/llvm/IR/Metadata.def
  llvm/include/llvm/IR/Metadata.h
  llvm/include/llvm/IR/Operator.h
  llvm/include/llvm/Support/TargetOpcodes.def
  llvm/include/llvm/Target/Target.td
  llvm/include/llvm/Transforms/Utils/Local.h
  llvm/lib/AsmParser/LLParser.cpp
  llvm/lib/AsmParser/LLParser.h
  llvm/lib/BinaryFormat/Dwarf.cpp
  llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
  llvm/lib/Bitcode/Reader/MetadataLoader.cpp
  llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
  llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
  llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp
  llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
  llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
  llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
  llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
  llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h
  llvm/lib/CodeGen/CodeGenPrepare.cpp
  llvm/lib/CodeGen/InlineSpiller.cpp
  llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
  llvm/lib/CodeGen/LiveDebugVariables.cpp
  llvm/lib/CodeGen/LiveRangeShrink.cpp
  llvm/lib/CodeGen/MIRParser/MIParser.cpp
  llvm/lib/CodeGen/MachineInstr.cpp
  llvm/lib/CodeGen/MachineRegisterInfo.cpp
  llvm/lib/CodeGen/MachineSink.cpp
  llvm/lib/CodeGen/PrologEpilogInserter.cpp
  llvm/lib/CodeGen/RegAllocFast.cpp
  llvm/lib/CodeGen/RegisterCoalescer.cpp
  llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
  llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h
  llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
  llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  llvm/lib/IR/AsmWriter.cpp
  llvm/lib/IR/Constants.cpp
  llvm/lib/IR/DebugInfoMetadata.cpp
  llvm/lib/IR/Instructions.cpp
  llvm/lib/IR/IntrinsicInst.cpp
  llvm/lib/IR/LLVMContextImpl.h
  llvm/lib/IR/Metadata.cpp
  llvm/lib/IR/Operator.cpp
  llvm/lib/IR/User.cpp
  llvm/lib/IR/Verifier.cpp
  llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
  llvm/lib/Target/AArch64/AArch64StackTagging.cpp
  llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp
  llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h
  llvm/lib/Target/X86/X86OptimizeLEAs.cpp
  llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
  llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
  llvm/lib/Transforms/Scalar/ADCE.cpp
  llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
  llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
  llvm/lib/Transforms/Utils/CodeExtractor.cpp
  llvm/lib/Transforms/Utils/Debugify.cpp
  llvm/lib/Transforms/Utils/LCSSA.cpp
  llvm/lib/Transforms/Utils/Local.cpp
  llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
  llvm/lib/Transforms/Utils/ValueMapper.cpp
  llvm/test/CodeGen/MIR/Generic/dbg-value-list-spill.mir
  llvm/test/CodeGen/MIR/Generic/dbg-value-list.mir
  llvm/test/DebugInfo/Generic/debug_value_list.ll
  llvm/test/DebugInfo/MIR/X86/dvl-livedebugvalues-clobber.mir
  llvm/test/DebugInfo/MIR/X86/dvl-livedebugvalues-join.mir
  llvm/test/DebugInfo/MIR/X86/dvl-livedebugvalues-movements.mir
  llvm/test/DebugInfo/MIR/X86/dvl-livedebugvalues-spillrestore.mir
  llvm/test/DebugInfo/MIR/X86/dvl-livedebugvars-movements.mir
  llvm/test/DebugInfo/MIR/X86/dvl-livedebugvars-stackptr.mir
  llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir
  llvm/test/DebugInfo/X86/arg-dbg-value-list.ll
  llvm/test/DebugInfo/X86/dbg-val-list-dangling.ll
  llvm/test/DebugInfo/X86/dbg-val-list-undef.ll
  llvm/test/DebugInfo/X86/dbg-value-list-dag-combine.ll
  llvm/test/DebugInfo/X86/dbg-value-list-selectiondag-salvage.ll
  llvm/test/DebugInfo/X86/dbg_value_list_clobbers.mir
  llvm/test/DebugInfo/X86/dbg_value_list_emission.mir
  llvm/test/DebugInfo/X86/debug_value_list_selectiondag.ll
  llvm/test/DebugInfo/salvage-gep.ll
  llvm/test/DebugInfo/salvage-nonconst-binop.ll
  llvm/test/Transforms/InstCombine/debuginfo-sink.ll
  llvm/test/Transforms/Reassociate/undef_intrinsics_when_deleting_instructions.ll
  llvm/unittests/IR/DebugInfoTest.cpp
  llvm/unittests/IR/MetadataTest.cpp
  llvm/unittests/Transforms/Utils/LocalTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D94631.316497.patch
Type: text/x-patch
Size: 440362 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210113/ce558721/attachment-0001.bin>


More information about the llvm-commits mailing list