[PATCH] D136331: [Assignment Tracking Analysis][4/*] Plumb analysis results into SelectionDAG

Orlando Cazalet-Hyams via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 20 03:16:14 PDT 2022


Orlando created this revision.
Orlando added a project: debug-info.
Herald added a subscriber: hiraditya.
Herald added a project: All.
Orlando requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

With assignment tracking enabled debug intrinsics are ignored by SelectionDAG and it instead reads location definitions generated by the analysis pass.

SelectionDAG itself has no fundamental need to refer to debug intrinsics directly so this change is fairly straightforward.

The analysis results are used in `SelectionDAGBuilder::visit` - fetching the batch of definitions that come just before each instruction that is about to be processed, and processing them as if they were debug intrinsics. They're also used in `SelectionDAGISel::SelectAllBasicBlocks` where dbg.declare intrinsic behaviour is mimicked for single memory location defs.

`DanglingDebugInfo` has been updated to point to a either a `DbgValueInst` or a `VarLocRecord`, and its API has been updated to fetch information from whichever it was initialised with.

---

With this, tests can be added - coming in the next patch.


https://reviews.llvm.org/D136331

Files:
  llvm/include/llvm/CodeGen/SelectionDAG.h
  llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D136331.469150.patch
Type: text/x-patch
Size: 21942 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221020/28029950/attachment.bin>


More information about the llvm-commits mailing list