Public Member Functions | Private Member Functions | Private Attributes

OA::Activity::ManagerICFGDep Class Reference

#include <ManagerICFGDep.hpp>

Inheritance diagram for OA::Activity::ManagerICFGDep:
Inheritance graph
[legend]
Collaboration diagram for OA::Activity::ManagerICFGDep:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ManagerICFGDep (OA_ptr< ActivityIRInterface > _ir)
 ~ManagerICFGDep ()
OA_ptr< ICFGDepperformAnalysis (OA_ptr< ICFG::ICFGInterface > icfg, OA_ptr< DataFlow::ParamBindings > paramBind, OA_ptr< Alias::InterAliasInterface > interAlias, DataFlow::DFPImplement algorithm)

Private Member Functions

OA_ptr< DataFlow::DataFlowSetinitializeTop ()
 Return an initialized top set.
OA_ptr< DataFlow::DataFlowSetinitializeNodeIN (OA_ptr< ICFG::NodeInterface > n)
 Should generate an in and out DataFlowSet for node.
OA_ptr< DataFlow::DataFlowSetinitializeNodeOUT (OA_ptr< ICFG::NodeInterface > n)
OA_ptr< DataFlow::DataFlowSetmeet (OA_ptr< DataFlow::DataFlowSet > set1, OA_ptr< DataFlow::DataFlowSet > set2)
OA_ptr< DataFlow::DataFlowSettransfer (ProcHandle proc, OA_ptr< DataFlow::DataFlowSet > in, OA::StmtHandle stmt)
 Core of analysis algorithm. Transfer function for a stmt.
OA_ptr< DataFlow::DataFlowSetentryTransfer (ProcHandle proc, OA_ptr< DataFlow::DataFlowSet > in)
OA_ptr< DataFlow::DataFlowSetexitTransfer (ProcHandle proc, OA_ptr< DataFlow::DataFlowSet > out)
OA_ptr< DataFlow::DataFlowSetcallerToCallee (ProcHandle caller, OA_ptr< DataFlow::DataFlowSet > dfset, CallHandle call, ProcHandle callee)
 Propagate a data-flow set from caller to callee.
OA_ptr< DataFlow::DataFlowSetcalleeToCaller (ProcHandle callee, OA_ptr< DataFlow::DataFlowSet > dfset, CallHandle call, ProcHandle caller)
 Propagate a data-flow set from callee to caller.
OA_ptr< DataFlow::DataFlowSetcallToReturn (ProcHandle caller, OA_ptr< DataFlow::DataFlowSet > dfset, CallHandle call, ProcHandle callee)
 Propagate a data-flow set from call node to return node.

Private Attributes

OA_ptr< ActivityIRInterfacemIR
OA_ptr< ICFGDepmDep
OA_ptr
< Alias::InterAliasInterface
mInterAlias
OA_ptr< DataFlow::ParamBindingsmParamBind
OA_ptr< DataFlow::ICFGDFSolvermSolver
OA_ptr< ICFG::ICFGInterfacemICFG

Detailed Description

The AnnotationManager for a ICFGDep. Just posing as an ICFGDFProblem because the ICFGDep results are only valid for ManagerICFGVary and ManagerICFGUseful because they propagate over the ICFG. FIXME: could be useful to other representations that handle propagation to function calls as well and doesn't need to have the stmt with a function call include the Dep relations for the call

Definition at line 44 of file ManagerICFGDep.hpp.


Constructor & Destructor Documentation

OA::Activity::ManagerICFGDep::ManagerICFGDep ( OA_ptr< ActivityIRInterface _ir  ) 
OA::Activity::ManagerICFGDep::~ManagerICFGDep (  )  [inline]

Definition at line 48 of file ManagerICFGDep.hpp.


Member Function Documentation

OA_ptr<DataFlow::DataFlowSet> OA::Activity::ManagerICFGDep::calleeToCaller ( ProcHandle  callee,
OA_ptr< DataFlow::DataFlowSet dfset,
CallHandle  call,
ProcHandle  caller 
) [inline, private, virtual]

Propagate a data-flow set from callee to caller.

Implements OA::DataFlow::ICFGDFProblem.

Definition at line 107 of file ManagerICFGDep.hpp.

References initializeTop().

Here is the call graph for this function:

OA_ptr<DataFlow::DataFlowSet> OA::Activity::ManagerICFGDep::callerToCallee ( ProcHandle  caller,
OA_ptr< DataFlow::DataFlowSet dfset,
CallHandle  call,
ProcHandle  callee 
) [inline, private, virtual]

Propagate a data-flow set from caller to callee.

Implements OA::DataFlow::ICFGDFProblem.

Definition at line 102 of file ManagerICFGDep.hpp.

References initializeTop().

Here is the call graph for this function:

OA_ptr<DataFlow::DataFlowSet> OA::Activity::ManagerICFGDep::callToReturn ( ProcHandle  caller,
OA_ptr< DataFlow::DataFlowSet dfset,
CallHandle  call,
ProcHandle  callee 
) [inline, private, virtual]

Propagate a data-flow set from call node to return node.

Implements OA::DataFlow::ICFGDFProblem.

Definition at line 112 of file ManagerICFGDep.hpp.

References initializeTop().

Here is the call graph for this function:

OA_ptr<DataFlow::DataFlowSet> OA::Activity::ManagerICFGDep::entryTransfer ( ProcHandle  proc,
OA_ptr< DataFlow::DataFlowSet in 
) [inline, private, virtual]

transfer function for the entry node of the given procedure should manipulate incoming data-flow set in any special ways for procedure and return outgoing data-flow set for node

Implements OA::DataFlow::ICFGDFProblem.

Definition at line 91 of file ManagerICFGDep.hpp.

References initializeTop().

Here is the call graph for this function:

OA_ptr<DataFlow::DataFlowSet> OA::Activity::ManagerICFGDep::exitTransfer ( ProcHandle  proc,
OA_ptr< DataFlow::DataFlowSet out 
) [inline, private, virtual]

transfer function for the exit node of the given procedure should manipulate outgoing data-flow set in any special ways for procedure and return incoming data-flow set for node

Implements OA::DataFlow::ICFGDFProblem.

Definition at line 98 of file ManagerICFGDep.hpp.

References initializeTop().

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerICFGDep::initializeNodeIN ( OA_ptr< ICFG::NodeInterface n  )  [private, virtual]

Should generate an in and out DataFlowSet for node.

Not doing anything special at entries and exits.

Implements OA::DataFlow::ICFGDFProblem.

Definition at line 74 of file ManagerICFGDep.cpp.

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerICFGDep::initializeNodeOUT ( OA_ptr< ICFG::NodeInterface n  )  [private, virtual]

Implements OA::DataFlow::ICFGDFProblem.

Definition at line 80 of file ManagerICFGDep.cpp.

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerICFGDep::initializeTop (  )  [private, virtual]

Return an initialized top set.

Implements OA::DataFlow::ICFGDFProblem.

Definition at line 63 of file ManagerICFGDep.cpp.

Referenced by calleeToCaller(), callerToCallee(), callToReturn(), entryTransfer(), and exitTransfer().

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerICFGDep::meet ( OA_ptr< DataFlow::DataFlowSet set1,
OA_ptr< DataFlow::DataFlowSet set2 
) [private, virtual]

OK to modify set1 and return it as result, because solver only passes a tempSet in as set1

Not propagating any useful information over the ICFG

Implements OA::DataFlow::ICFGDFProblem.

Definition at line 92 of file ManagerICFGDep.cpp.

OA_ptr< ICFGDep > OA::Activity::ManagerICFGDep::performAnalysis ( OA_ptr< ICFG::ICFGInterface icfg,
OA_ptr< DataFlow::ParamBindings paramBind,
OA_ptr< Alias::InterAliasInterface interAlias,
DataFlow::DFPImplement  algorithm 
)

In transfer function creates a DepDFSet for each stmt.

Definition at line 33 of file ManagerICFGDep.cpp.

References OA::Activity::debug, mDep, mICFG, mInterAlias, mParamBind, and mSolver.

OA_ptr< DataFlow::DataFlowSet > OA::Activity::ManagerICFGDep::transfer ( ProcHandle  proc,
OA_ptr< DataFlow::DataFlowSet in,
OA::StmtHandle  stmt 
) [private, virtual]

Core of analysis algorithm. Transfer function for a stmt.

OK to modify in set and return it again as result because solver clones the BB in sets

Create a DepDFSet for this stmt.

Implements OA::DataFlow::ICFGDFProblem.

Definition at line 105 of file ManagerICFGDep.cpp.


Member Data Documentation

Definition at line 119 of file ManagerICFGDep.hpp.

Referenced by performAnalysis().

Definition at line 123 of file ManagerICFGDep.hpp.

Referenced by performAnalysis().

Definition at line 120 of file ManagerICFGDep.hpp.

Referenced by performAnalysis().

Definition at line 118 of file ManagerICFGDep.hpp.

Definition at line 121 of file ManagerICFGDep.hpp.

Referenced by performAnalysis().

Definition at line 122 of file ManagerICFGDep.hpp.

Referenced by ManagerICFGDep(), and performAnalysis().


The documentation for this class was generated from the following files: