Public Member Functions | Private Member Functions | Private Attributes

OA::Alias::ManagerInsNoPtrInterAliasMap Class Reference

#include <ManagerInsNoPtrInterAliasMap.hpp>

Collaboration diagram for OA::Alias::ManagerInsNoPtrInterAliasMap:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ManagerInsNoPtrInterAliasMap (OA_ptr< AliasIRInterface > _ir)
 ~ManagerInsNoPtrInterAliasMap ()
OA_ptr< Alias::InterAliasMapperformAnalysis (OA_ptr< CallGraph::Interface > callGraph, OA_ptr< DataFlow::ParamBindings > paramBind)

Private Member Functions

OA_ptr< DataFlow::DataFlowSetinitializeTop ()
 Return an initialized top set.
OA_ptr< DataFlow::DataFlowSetinitializeBottom ()
 Return an initialized bottom set.
OA_ptr< DataFlow::DataFlowSetinitializeNode (ProcHandle proc)
 Should generate an initial DataFlowSet for a procedure.
OA_ptr< DataFlow::DataFlowSetinitializeEdge (ExprHandle call, ProcHandle caller, ProcHandle callee)
OA_ptr< DataFlow::DataFlowSetinitializeEdge (ExprHandle call, ProcHandle caller, SymHandle callee)
OA_ptr< DataFlow::DataFlowSetmeet (OA_ptr< DataFlow::DataFlowSet > set1, OA_ptr< DataFlow::DataFlowSet > set2)
OA_ptr< DataFlow::DataFlowSetatCallGraphNode (OA_ptr< DataFlow::DataFlowSet > inSet, OA::ProcHandle proc)
 What the analysis does for the particular procedure.
OA_ptr< DataFlow::DataFlowSetatCallGraphEdge (OA_ptr< DataFlow::DataFlowSet > inSet, OA::ExprHandle call, ProcHandle caller, ProcHandle callee)
 What the analysis does for a particular call.
OA_ptr< DataFlow::DataFlowSetnodeToEdge (ProcHandle proc, OA_ptr< DataFlow::DataFlowSet > procDFSet, ExprHandle call)
OA_ptr< DataFlow::DataFlowSetedgeToNode (ExprHandle call, OA_ptr< DataFlow::DataFlowSet > callDFSet, ProcHandle proc)

Private Attributes

OA_ptr< AliasIRInterfacemIR
OA_ptr< InterAliasMapmInterAliasMap
OA_ptr< DataFlow::ParamBindingsmParamBind
std::map< ExprHandle, OA_ptr
< SymAliasSets > > 
mCallToDFSet

Detailed Description

Creates InterAliasMap, which can be queried for an AliasMap for each procedure.

Definition at line 48 of file ManagerInsNoPtrInterAliasMap.hpp.


Constructor & Destructor Documentation

OA::Alias::ManagerInsNoPtrInterAliasMap::ManagerInsNoPtrInterAliasMap ( OA_ptr< AliasIRInterface _ir  ) 

Definition at line 28 of file ManagerInsNoPtrInterAliasMap.cpp.

OA::Alias::ManagerInsNoPtrInterAliasMap::~ManagerInsNoPtrInterAliasMap (  )  [inline]

Definition at line 52 of file ManagerInsNoPtrInterAliasMap.hpp.


Member Function Documentation

OA_ptr< DataFlow::DataFlowSet > OA::Alias::ManagerInsNoPtrInterAliasMap::atCallGraphEdge ( OA_ptr< DataFlow::DataFlowSet inSet,
OA::ExprHandle  call,
ProcHandle  caller,
ProcHandle  callee 
) [private]

What the analysis does for a particular call.

Definition at line 237 of file ManagerInsNoPtrInterAliasMap.cpp.

OA_ptr< DataFlow::DataFlowSet > OA::Alias::ManagerInsNoPtrInterAliasMap::atCallGraphNode ( OA_ptr< DataFlow::DataFlowSet inSet,
OA::ProcHandle  proc 
) [private]

What the analysis does for the particular procedure.

Definition at line 166 of file ManagerInsNoPtrInterAliasMap.cpp.

OA_ptr< DataFlow::DataFlowSet > OA::Alias::ManagerInsNoPtrInterAliasMap::edgeToNode ( ExprHandle  call,
OA_ptr< DataFlow::DataFlowSet callDFSet,
ProcHandle  proc 
) [private]

translate results from caller edge to procedure node if top-down or from callee edge if bottom-up

Definition at line 319 of file ManagerInsNoPtrInterAliasMap.cpp.

References OA::Alias::debug, and OA::OA_ptr< T >::dump().

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Alias::ManagerInsNoPtrInterAliasMap::initializeBottom (  )  [private]

Return an initialized bottom set.

Shouldn't be called.

Definition at line 77 of file ManagerInsNoPtrInterAliasMap.cpp.

OA_ptr< DataFlow::DataFlowSet > OA::Alias::ManagerInsNoPtrInterAliasMap::initializeEdge ( ExprHandle  call,
ProcHandle  caller,
ProcHandle  callee 
) [private]

Should generate an initial DataFlowSet, use if for a call if both caller and callee are defined

Definition at line 105 of file ManagerInsNoPtrInterAliasMap.cpp.

References mIR.

OA_ptr< DataFlow::DataFlowSet > OA::Alias::ManagerInsNoPtrInterAliasMap::initializeEdge ( ExprHandle  call,
ProcHandle  caller,
SymHandle  callee 
) [private]

Should generate an initial DataFlowSet for a call, called when callee is not defined in call graph and therefore doesn't have a procedure definition handle

Definition at line 121 of file ManagerInsNoPtrInterAliasMap.cpp.

OA_ptr< DataFlow::DataFlowSet > OA::Alias::ManagerInsNoPtrInterAliasMap::initializeNode ( ProcHandle  proc  )  [private]

Should generate an initial DataFlowSet for a procedure.

Definition at line 93 of file ManagerInsNoPtrInterAliasMap.cpp.

OA_ptr< DataFlow::DataFlowSet > OA::Alias::ManagerInsNoPtrInterAliasMap::initializeTop (  )  [private]

Return an initialized top set.

Data-flow set passed around on the call graph is an SymAliasSets. The top value for this is that all Symbols are in own set, which is essentially the default assumption.

Definition at line 67 of file ManagerInsNoPtrInterAliasMap.cpp.

OA_ptr< DataFlow::DataFlowSet > OA::Alias::ManagerInsNoPtrInterAliasMap::meet ( OA_ptr< DataFlow::DataFlowSet set1,
OA_ptr< DataFlow::DataFlowSet set2 
) [private]

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

Definition at line 140 of file ManagerInsNoPtrInterAliasMap.cpp.

References OA::OA_ptr< T >::convert(), OA::Alias::debug, and OA::OA_ptr< T >::dump().

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::Alias::ManagerInsNoPtrInterAliasMap::nodeToEdge ( ProcHandle  proc,
OA_ptr< DataFlow::DataFlowSet procDFSet,
ExprHandle  call 
) [private]

translate results from procedure node to callee edge if top-down or to caller edge if bottom-up

Definition at line 252 of file ManagerInsNoPtrInterAliasMap.cpp.

References OA::OA_ptr< T >::convert(), OA::Alias::debug, mInterAliasMap, mIR, and mParamBind.

Here is the call graph for this function:

OA_ptr< Alias::InterAliasMap > OA::Alias::ManagerInsNoPtrInterAliasMap::performAnalysis ( OA_ptr< CallGraph::Interface >  callGraph,
OA_ptr< DataFlow::ParamBindings paramBind 
)

Definition at line 37 of file ManagerInsNoPtrInterAliasMap.cpp.


Member Data Documentation

Definition at line 119 of file ManagerInsNoPtrInterAliasMap.hpp.

Definition at line 117 of file ManagerInsNoPtrInterAliasMap.hpp.

Referenced by nodeToEdge().

Definition at line 116 of file ManagerInsNoPtrInterAliasMap.hpp.

Referenced by initializeEdge(), and nodeToEdge().

Definition at line 118 of file ManagerInsNoPtrInterAliasMap.hpp.

Referenced by nodeToEdge().


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