Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

analysisProblem Class Reference

#include <ipanalysis.h>

Inheritance diagram for analysisProblem::

constantAnalyzer ipConstantPropagation livenessAnalyzer List of all members.

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

Constructor & Destructor Documentation

analysisProblem::analysisProblem Direction    direction [inline]
 

Create a new analysis problem object.

The only purpose of this constructor is to set the direction field.


Member Function Documentation

virtual void analysisProblem::at_address stmtLocation   current,
unaryNode   unary,
pointerValue   operand,
pointerValue   result,
bool    result_is_a_use
[inline, virtual]
 

Reimplemented in constantAnalyzer.

virtual void analysisProblem::at_assignment stmtLocation   current,
binaryNode   binary,
pointerValue   left,
pointerValue   right,
pointerValue   result,
bool    result_is_a_use,
memoryblock_set   changes
[inline, virtual]
 

Reimplemented in constantAnalyzer, and livenessAnalyzer.

virtual void analysisProblem::at_basicblock_entry basicblockLocation   blockloc,
procedureInfo   info,
pointerValue   initial
[inline, virtual]
 

Reimplemented in constantAnalyzer, and livenessAnalyzer.

virtual void analysisProblem::at_basicblock_exit basicblockLocation   block,
procedureInfo   info,
pointerValue   final
[inline, virtual]
 

virtual void analysisProblem::at_binary stmtLocation   current,
binaryNode   binary,
pointerValue   left,
pointerValue   right,
pointerValue   result,
bool    result_is_a_use
[inline, virtual]
 

Reimplemented in constantAnalyzer.

virtual void analysisProblem::at_call stmtLocation   current,
callNode   call,
pointerValue   call_target,
procNode   callee,
pointervalue_list   arguments,
pointerValue   return_val
[inline, virtual]
 

Reimplemented in livenessAnalyzer.

virtual void analysisProblem::at_cast stmtLocation   current,
castNode   cast,
pointerValue   operand,
pointerValue   result,
bool    result_is_a_use
[inline, virtual]
 

Reimplemented in constantAnalyzer.

virtual void analysisProblem::at_conservative_procedure_call stmtLocation   current,
callNode   call,
pointerValue   call_target,
pointervalue_list   arguments,
memoryblock_set   reachable_blocks,
pointerValue   return_val,
memoryblock_set   changes
[inline, virtual]
 

Reimplemented in constantAnalyzer.

virtual void analysisProblem::at_const stmtLocation   current,
constNode   cons,
pointerValue   result,
bool    result_is_a_use
[inline, virtual]
 

Reimplemented in constantAnalyzer.

virtual void analysisProblem::at_dereference stmtLocation   current,
unaryNode   unary,
pointerValue   operand,
pointerValue   result,
bool    result_is_a_use
[inline, virtual]
 

Reimplemented in constantAnalyzer.

virtual void analysisProblem::at_exprstmt stmtLocation   stmt,
exprstmtNode   es,
pointerValue   result
[inline, virtual]
 

Reimplemented in livenessAnalyzer.

virtual void analysisProblem::at_field_access stmtLocation   current,
binaryNode   binary,
pointerValue   operand,
idNode   field,
pointerValue   result,
bool    result_is_a_use
[inline, virtual]
 

Reimplemented in constantAnalyzer.

virtual void analysisProblem::at_id stmtLocation   current,
idNode   id,
pointerValue   block,
bool    result_is_a_use
[inline, virtual]
 

Reimplemented in constantAnalyzer.

virtual void analysisProblem::at_if stmtLocation   stmt,
ifNode   ifnode,
pointerValue   result
[inline, virtual]
 

Reimplemented in livenessAnalyzer.

virtual void analysisProblem::at_index stmtLocation   current,
binaryNode   binary,
pointerValue   left,
pointerValue   right,
pointerValue   result,
bool    result_is_a_use
[inline, virtual]
 

Reimplemented in constantAnalyzer, and livenessAnalyzer.

virtual void analysisProblem::at_merge basicblockLocation   where,
memoryBlock   block,
memoryuse_list   phi_uses,
pointerValue   result,
memoryblock_set   changes
[inline, virtual]
 

Reimplemented in constantAnalyzer, and livenessAnalyzer.

virtual void analysisProblem::at_parameter_pass Location   current,
pointerValue   left,
pointerValue   right,
pointerValue   result,
memoryblock_set   changes
[inline, virtual]
 

Reimplemented in constantAnalyzer.

virtual void analysisProblem::at_procedure_entry procLocation   proc,
procedureInfo   info,
pointerValue   return_val
[inline, virtual]
 

Reimplemented in livenessAnalyzer.

virtual void analysisProblem::at_procedure_exit procLocation   proc,
procedureInfo   info,
pointerValue   return_val
[inline, virtual]
 

Reimplemented in livenessAnalyzer.

virtual void analysisProblem::at_return stmtLocation   stmt,
returnNode   ret,
pointerValue   result,
pointerValue   return_val
[inline, virtual]
 

Reimplemented in constantAnalyzer, and livenessAnalyzer.

virtual void analysisProblem::at_stmt_entry stmtLocation   stmt,
pointerValue   result
[inline, virtual]
 

Reimplemented in constantAnalyzer.

virtual void analysisProblem::at_stmt_exit stmtLocation   stmt,
pointerValue   result
[inline, virtual]
 

Reimplemented in livenessAnalyzer.

virtual void analysisProblem::at_unary stmtLocation   current,
unaryNode   unary,
pointerValue   operand,
pointerValue   result,
bool    result_is_a_use
[inline, virtual]
 

Reimplemented in constantAnalyzer.

Direction analysisProblem::direction   const [inline]
 

Get the direction.

virtual string analysisProblem::name   [pure virtual]
 

Name of the analysis.

Just for debug purposes.

Reimplemented in constantAnalyzer, and livenessAnalyzer.


Member Data Documentation

Direction analysisProblem::_direction [protected]
 


The documentation for this class was generated from the following file:
Generated on Thu Jan 10 12:06:23 2002 for C-Breeze by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001