[PATCH] D91722: [DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands

Stephen Tozer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 15 06:04:31 PDT 2021


StephenTozer updated this revision to Diff 330626.
StephenTozer added a comment.

Fixes two issues with handling of variadic debug values:

1. `SelectionDAG::transferDebugValues` incorrectly updating its dependencies list.
2. LoopStrengthReduce, when trying to "repair" undef debug values by replacing them with equal values, must first restore the original location metadata to prevent it from being incorrectly updated if the number of location operands changed as a result of salvaging by LSR.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91722/new/

https://reviews.llvm.org/D91722

Files:
  llvm/include/llvm/IR/DebugInfoMetadata.h
  llvm/include/llvm/IR/Instructions.h
  llvm/include/llvm/IR/IntrinsicInst.h
  llvm/include/llvm/IR/Operator.h
  llvm/include/llvm/Transforms/Utils/Local.h
  llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/lib/IR/DebugInfoMetadata.cpp
  llvm/lib/IR/Instructions.cpp
  llvm/lib/IR/IntrinsicInst.cpp
  llvm/lib/IR/Operator.cpp
  llvm/lib/Transforms/Coroutines/CoroFrame.cpp
  llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  llvm/lib/Transforms/Utils/Local.cpp
  llvm/test/DebugInfo/NVPTX/debug-info.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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D91722.330626.patch
Type: text/x-patch
Size: 46430 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210315/d4987464/attachment.bin>


More information about the llvm-commits mailing list