decompiler
1.0.0
|
Helper class associating a Varnode with the block where it is defined. More...
#include <merge.hh>
Public Member Functions | |
void | set (Varnode *v) |
Set this as representing the given Varnode. More... | |
bool | operator< (const BlockVarnode &op2) const |
Comparator. | |
Varnode * | getVarnode (void) const |
Get the Varnode represented by this. | |
int4 | getIndex (void) const |
Get the Varnode's defining block index. | |
Static Public Member Functions | |
static int4 | findFront (int4 blocknum, const vector< BlockVarnode > &list) |
Find the first Varnode defined in the BlockBasic of the given index. More... | |
Private Attributes | |
int4 | index |
Index of BlockBasic defining Varnode. | |
Varnode * | vn |
The Varnode itself. | |
Helper class associating a Varnode with the block where it is defined.
This class explicitly stores a Varnode with the index of the BlockBasic that defines it. If a Varnode does not have a defining PcodeOp it is assigned an index of 0. This facilitates quicker sorting of Varnodes based on their defining block.
|
static |
Find the first Varnode defined in the BlockBasic of the given index.
A BlockVarnode is identified from a sorted list. The position of the first BlockVarnode in this list that has the given BlockBasic index is returned.
blocknum | is the index of the BlockBasic to search for |
list | is the sorted list of BlockVarnodes |
References getIndex().
Referenced by Merge::eliminateIntersect().
void BlockVarnode::set | ( | Varnode * | v | ) |
Set this as representing the given Varnode.
This instance assumes the identity of the given Varnode and the defining index is cached to facilitate quick sorting.
v | is the given Varnode |
References Varnode::getDef(), FlowBlock::getIndex(), PcodeOp::getParent(), index, and vn.