[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