Add reaching definitions analysis to StackAnalysis.
authorMatt Morehouse <mm@cs.wisc.edu>
Thu, 20 Apr 2017 18:12:11 +0000 (13:12 -0500)
committerMatt Morehouse <mm@cs.wisc.edu>
Thu, 20 Apr 2017 18:12:11 +0000 (13:12 -0500)
commit5191cab7d95fd2b49b2228c20c05bbd1b41e2020
tree2eedf96aee363aae5d88f03a0bcb330d1d992ea9
parentc70639210310ccfe656d9a89992f0f473b7dddb8
Add reaching definitions analysis to StackAnalysis.

The reaching definitions analysis keeps track of where stack
pointers are defined so that StackMod can modify those definitions
if necessary.  StackMod currently modifies definitions only when
there are multiple possible stack slots a pointer could point to
and then that pointer is dereferenced.  In that scenario, we cannot
modify just the access since we would need to have two different
displacements depending on the value of the pointer.  Instead,
StackMod modifies the pointers at their definition points so that
they point to their new stack locations.
dataflowAPI/h/stackanalysis.h
dataflowAPI/src/stackanalysis.C
dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
dyninstAPI/src/Relocation/Transformers/Movement-adhoc.h
dyninstAPI/src/StackMod/StackAccess.C
dyninstAPI/src/StackMod/StackAccess.h
dyninstAPI/src/StackMod/StackModChecker.C
dyninstAPI/src/codegen-x86.C
dyninstAPI/src/function.C
dyninstAPI/src/function.h