Without this patch SelectionDAG silently drops dbg.values using !{} operands.
Related to https://discourse.llvm.org/t/auto-undef-debug-uses-of-a-deleted-value
Paths
| Differential D140990
[DebugInfo] Treat empty metadata operands the same as undef operands in SelectionDAG ClosedPublic Authored by Orlando on Jan 4 2023, 7:13 AM.
Details Summary Without this patch SelectionDAG silently drops dbg.values using !{} operands. Related to https://discourse.llvm.org/t/auto-undef-debug-uses-of-a-deleted-value
Diff Detail Event TimelineThis revision is now accepted and ready to land.Jan 4 2023, 9:09 AM Orlando added a child revision: D141067: [DebugInfo] Do not replace Instruction uses with undef.Jan 5 2023, 8:52 AM This revision was landed with ongoing or failed builds.Apr 26 2023, 1:03 AM Closed by commit rG2b3c13b7166b: [DebugInfo] Treat empty metadata operands the same as undef operands in… (authored by Orlando). · Explain Why This revision was automatically updated to reflect the committed changes. Comment Actions Heads up: this seems to make compilation non-determenistic (I am still trying to confirm). Comment Actions
Likely fixed by https://reviews.llvm.org/D140901 Comment Actions Most curious.... I'm not sure off the top of my head why that'd be the case (either the issue or the fact that D140901 fixies it). SelectionDAG has a load of weird edge cases with debug info handling though. Thanks for looking into this, is there anything I can do to help?
Revision Contents
Diff 486281 llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
llvm/test/DebugInfo/X86/dbg-empty-metadata-lowering.ll
|