#include <ipanalysis.h>
Inheritance diagram for analysisProblem::
Public Methods | |
analysisProblem (Direction direction) | |
Create a new analysis problem object. More... | |
Direction | direction () const |
Get the direction. More... | |
virtual string | name ()=0 |
Name of the analysis. More... | |
Transfer functions | |
The rest of these functions are hooks for the pointer analyzer to call at various points in the analysis. They serve as the transfer functions for the dataflow analysis problem. | |
virtual void | at_id (stmtLocation *current, idNode *id, pointerValue &result, bool result_is_a_use) |
virtual void | at_unary (stmtLocation *current, unaryNode *unary, pointerValue &operand, pointerValue &result, bool result_is_a_use) |
virtual void | at_binary (stmtLocation *current, binaryNode *binary, pointerValue &left, pointerValue &right, pointerValue &result, bool result_is_a_use) |
virtual void | at_cast (stmtLocation *current, castNode *cast, pointerValue &operand, pointerValue &result, bool result_is_a_use) |
virtual void | at_const (stmtLocation *current, constNode *cons, pointerValue &result, bool result_is_a_use) |
virtual void | at_call (stmtLocation *current, callNode *call, pointerValue &call_target, procNode *callee, pointervalue_list &arguments, pointerValue &return_val) |
virtual void | at_field_access (stmtLocation *current, binaryNode *binary, pointerValue &operand, idNode *field, pointerValue &result, bool result_is_a_use) |
virtual void | at_dereference (stmtLocation *current, unaryNode *unary, pointerValue &operand, pointerValue &result, bool result_is_a_use) |
virtual void | at_address (stmtLocation *current, unaryNode *unary, pointerValue &operand, pointerValue &result, bool result_is_a_use) |
virtual void | at_index (stmtLocation *current, binaryNode *binary, pointerValue &left, pointerValue &right, pointerValue &result, bool result_is_a_use) |
virtual void | at_assignment (stmtLocation *current, binaryNode *binary, pointerValue &left, pointerValue &right, pointerValue &result, bool result_is_a_use, memoryblock_set &changes) |
virtual void | at_parameter_pass (Location *current, pointerValue &left, pointerValue &right, pointerValue &result, memoryblock_set &changes) |
virtual void | at_return (stmtLocation *stmt, returnNode *ret, pointerValue &result, pointerValue &return_val) |
virtual void | at_exprstmt (stmtLocation *stmt, exprstmtNode *es, pointerValue &result) |
virtual void | at_if (stmtLocation *stmt, ifNode *ifnode, pointerValue &result) |
virtual void | at_merge (basicblockLocation *where, memoryBlock *block, memoryuse_list &phi_uses, pointerValue &result, memoryblock_set &changes) |
virtual void | at_basicblock_entry (basicblockLocation *block, procedureInfo *info, pointerValue &initial) |
virtual void | at_stmt_entry (stmtLocation *stmt, pointerValue &result) |
virtual void | at_stmt_exit (stmtLocation *stmt, pointerValue &result) |
virtual void | at_basicblock_exit (basicblockLocation *block, procedureInfo *info, pointerValue &final) |
virtual void | at_conservative_procedure_call (stmtLocation *current, callNode *call, pointerValue &call_target, pointervalue_list &arguments, memoryblock_set &reachable_blocks, pointerValue &return_val, memoryblock_set &changes) |
virtual void | at_procedure_entry (procLocation *proc, procedureInfo *info, pointerValue &return_val) |
virtual void | at_procedure_exit (procLocation *proc, procedureInfo *info, pointerValue &return_val) |
Protected Attributes | |
Direction | _direction |
|
Create a new analysis problem object. The only purpose of this constructor is to set the direction field. |
|
Reimplemented in constantAnalyzer. |
|
Reimplemented in constantAnalyzer, and livenessAnalyzer. |
|
Reimplemented in constantAnalyzer, and livenessAnalyzer. |
|
|
|
Reimplemented in constantAnalyzer. |
|
Reimplemented in livenessAnalyzer. |
|
Reimplemented in constantAnalyzer. |
|
Reimplemented in constantAnalyzer. |
|
Reimplemented in constantAnalyzer. |
|
Reimplemented in constantAnalyzer. |
|
Reimplemented in livenessAnalyzer. |
|
Reimplemented in constantAnalyzer. |
|
Reimplemented in constantAnalyzer. |
|
Reimplemented in livenessAnalyzer. |
|
Reimplemented in constantAnalyzer, and livenessAnalyzer. |
|
Reimplemented in constantAnalyzer, and livenessAnalyzer. |
|
Reimplemented in constantAnalyzer. |
|
Reimplemented in livenessAnalyzer. |
|
Reimplemented in livenessAnalyzer. |
|
Reimplemented in constantAnalyzer, and livenessAnalyzer. |
|
Reimplemented in constantAnalyzer. |
|
Reimplemented in livenessAnalyzer. |
|
Reimplemented in constantAnalyzer. |
|
Get the direction.
|
|
Name of the analysis. Just for debug purposes. Reimplemented in constantAnalyzer, and livenessAnalyzer. |
|
|