This is an archive of the discontinued LLVM Phabricator instance.

[LiveDebugValues] Terminate open ranges on DBG_VALUE $noreg
ClosedPublic

Authored by jmorse on Apr 15 2020, 9:44 AM.

Details

Summary

In D68209, LiveDebugValues::transferDebugValue had a call to OpenRanges.erase shifted, and by accident this led to a code path where DBG_VALUEs of $noreg would not have their open range terminated, allowing variable locations to extend past blocks where they were terminated.

This patch correctly terminates the open range, if present, when such a DBG_VAUE is encountered, and add a test for this behaviour.

Diff Detail

Event Timeline

jmorse created this revision.Apr 15 2020, 9:44 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 15 2020, 9:45 AM
vsk accepted this revision.Apr 15 2020, 1:43 PM

Thanks, lgtm!

llvm/test/DebugInfo/MIR/X86/livedebugvalues_loop_terminated.mir
6

nit, terminates

This revision is now accepted and ready to land.Apr 15 2020, 1:43 PM
This revision was automatically updated to reflect the committed changes.