HomePhabricator

[SelectionDAG] Improve handling of dangling debug info

Description

[SelectionDAG] Improve handling of dangling debug info

Summary:

  1. Make sure to discard dangling debug info if the variable (or

variable fragment) is mapped to something new before we had a
chance to resolve the dangling debug info.

  1. When resolving debug info, make sure to bump the associated

SDNodeOrder to ensure that the DBG_VALUE is emitted after the
instruction that defines the value used in the DBG_VALUE.
This will avoid a debug-use before def scenario as seen in
https://bugs.llvm.org/show_bug.cgi?id=36417.

The new test case, test/DebugInfo/X86/sdag-dangling-dbgvalue.ll,
show some other limitations in how dangling debug info is
handled in the SelectionDAG. Since we currently only support
having one dangling dbg.value per Value, we will end up dropping
debug info when there are more than one variable that is described
by the same "dangling value".

Reviewers: aprantl

Reviewed By: aprantl

Subscribers: aprantl, eraman, llvm-commits, JDevlieghere

Tags: debug-info

Differential Revision: https://reviews.llvm.org/D44369

Details

Committed
bjopeMar 12 2018, 11:02 AM
Reviewer
aprantl
Differential Revision
D44369: [SelectionDAG] Improve handling of dangling debug info
Parents
rL327302: [Hexagon] Subtarget feature to emit one instruction per packet
Branches
Unknown
Tags
Unknown