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