This is an archive of the discontinued LLVM Phabricator instance.

[VirtRegMap] Salvage DBG_CALLSITEPARAM identities
AbandonedPublic

Authored by djtodoro on Feb 11 2019, 4:13 AM.

Details

Summary

This extension attempts to salvage DBG_CALLSITEPARAM identities.

DBG_CALLSITEPARAM identity is situation following ‘identity copies’ event – after virtual register remapping that creates copy instruction that loads physical register in itself. ‘identity copy’ reflect on DBG_CALLSITEPARAM so that we will have overlapping parameter loading register and location loaded into that parameter. Since ‘identity copy’ gets deleted because we already had loading of replaced register. This tries to find the loading instruction and interpret it through target instruction interface.

For base situation, it recognizes stack-loading instructions. For target specific it tries to describe X86 LEA instruction since we found out that it is the most common instruction that needs this salvaging process.

Authors: @asowda, @NikolaPrica, @djtodoro, @ivanbaev

Diff Detail

Event Timeline

djtodoro added a project: debug-info.
djtodoro added a subscriber: petarj.
djtodoro updated this revision to Diff 186615.Feb 13 2019, 2:51 AM
  • Rename: VariableNotChanged ===> ArgumentNotModified
  • Refactor test cases
djtodoro abandoned this revision.Apr 15 2019, 8:11 AM