This is an archive of the discontinued LLVM Phabricator instance.

[DebugInfo][InstrRef] Correctly ignore DBG_VALUE_LIST in InstrRef mode, for now
ClosedPublic

Authored by jmorse on Aug 16 2021, 9:24 AM.

Details

Summary

This patch makes InstrRefBasedLDV "safe" to work with DBG_VALUE_LISTs. It doesn't actually interpret them, but it recognises that they specify variable locations and avoids propagating false locations, which is better than the current state. Observe the attached test:

  • We avoid propagating DBG_VALUE_LISTs into successor blocks, as they're not "currently" supported,
  • We don't propagate other variable locations across DBG_VALUE_LISTs, because we know that the variable location is terminated by the DBG_VALUE_LIST.

I'd like to get this patch into the llvm-13 branch, so that anyone experimenting with this in the meantime gets safe variable locations. Then we can get on to properly supporting DBG_VALUE_LISTs.

Diff Detail

Event Timeline

jmorse created this revision.Aug 16 2021, 9:24 AM
jmorse requested review of this revision.Aug 16 2021, 9:24 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 16 2021, 9:24 AM
Orlando accepted this revision.Aug 20 2021, 5:39 AM

LGTM

This revision is now accepted and ready to land.Aug 20 2021, 5:39 AM