Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends

OA::DataFlow::LocDFSet Class Reference

#include <LocDFSet.hpp>

Inheritance diagram for OA::DataFlow::LocDFSet:
Inheritance graph
[legend]
Collaboration diagram for OA::DataFlow::LocDFSet:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 LocDFSet ()
 LocDFSet (const LocDFSet &other)
 ~LocDFSet ()
OA_ptr< DataFlowSetclone ()
bool operator== (DataFlowSet &other) const
bool operator!= (DataFlowSet &other) const
LocDFSetsetUnion (DataFlowSet &other)
LocDFSetsetIntersect (LocDFSet &other)
LocDFSetsetDifference (LocDFSet &other)
void dump (std::ostream &os)
void dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)
void output (OA::IRHandlesIRInterface &ir)
void insert (OA_ptr< Location > loc)
void remove (OA_ptr< Location > loc)
bool empty ()
 whether or not the set is empty
bool hasLoc (OA_ptr< Location > loc)
 whether or not the set contains the given location
bool hasOverlapLoc (OA_ptr< Location > loc)
OA_ptr< LocIteratorgetLocIterator ()
 iterator over locations
OA_ptr< LocIteratorgetOverlapLocIterator (OA_ptr< Location > loc)
 iterator over locations in set that overlap with given location
OA_ptr< LocDFSetcallerToCallee (ProcHandle caller, CallHandle call, ProcHandle callee, OA_ptr< Alias::InterAliasInterface > interAlias, OA_ptr< ParamBindings > paramBind, OA_ptr< CalleeToCallerVisitorIRInterface > ir)
OA_ptr< LocDFSetcallerToCalleeTransitive (ProcHandle caller, CallHandle call, ProcHandle callee, OA_ptr< Alias::InterAliasInterface > interAlias, OA_ptr< ParamBindings > paramBind, OA_ptr< CalleeToCallerVisitorIRInterface > ir)
OA_ptr< LocDFSetcalleeToCaller (ProcHandle callee, CallHandle call, ProcHandle caller, OA_ptr< Alias::InterAliasInterface > interAlias, OA_ptr< ParamBindings > paramBind, OA_ptr< CalleeToCallerVisitorIRInterface > ir)
OA_ptr< LocDFSetcalleeToCallerTransitive (ProcHandle callee, CallHandle call, ProcHandle caller, OA_ptr< Alias::InterAliasInterface > interAlias, OA_ptr< ParamBindings > paramBind, OA_ptr< CalleeToCallerVisitorIRInterface > ir)
OA_ptr< LocDFSetcallerToCalleeNot (ProcHandle caller, CallHandle call, ProcHandle callee, OA_ptr< Alias::InterAliasInterface > interAlias, OA_ptr< ParamBindings > paramBind, OA_ptr< CalleeToCallerVisitorIRInterface > ir)

Protected Attributes

OA_ptr< LocSetmSetPtr

Private Member Functions

void updateMap ()
void removeFromMap (OA_ptr< Location > loc)
void addToMap (OA_ptr< Location > loc)
void associateWithBaseHandle (IRHandle baseHandle, OA_ptr< Location > loc)
void disassociateWithBaseHandle (IRHandle baseHandle, OA_ptr< Location > loc)
bool setHasOverlapLoc (OA_ptr< Location > loc, OA_ptr< LocSet > aSet)
 whether the give loc overlaps with anything in the given set
OA_ptr< LocDFSetoverlapLocSet (OA_ptr< Location > loc, OA_ptr< LocSet > aSet)
 whether the give loc overlaps with anything in the given set

Private Attributes

bool mBaseLocToSetMapValid
bool mHasUnknownLoc
OA_ptr< LocSetmInvLocs
std::map< IRHandle, OA_ptr
< LocSet > > 
mBaseLocToSetMap
OA_ptr
< CalleeToCallerVisitorIRInterface
mIR

Friends

class LocDFSetIterator

Detailed Description

Definition at line 35 of file LocDFSet.hpp.


Constructor & Destructor Documentation

OA::DataFlow::LocDFSet::LocDFSet (  ) 
OA::DataFlow::LocDFSet::LocDFSet ( const LocDFSet other  ) 

Definition at line 31 of file LocDFSet.cpp.

OA::DataFlow::LocDFSet::~LocDFSet (  )  [inline]

Definition at line 39 of file LocDFSet.hpp.


Member Function Documentation

void OA::DataFlow::LocDFSet::addToMap ( OA_ptr< Location loc  )  [private]

Definition at line 725 of file LocDFSet.cpp.

References associateWithBaseHandle(), OA::OA_ptr< T >::convert(), mHasUnknownLoc, and mInvLocs.

Here is the call graph for this function:

void OA::DataFlow::LocDFSet::associateWithBaseHandle ( IRHandle  baseHandle,
OA_ptr< Location loc 
) [private]

Definition at line 715 of file LocDFSet.cpp.

Referenced by addToMap().

OA_ptr< LocDFSet > OA::DataFlow::LocDFSet::calleeToCaller ( ProcHandle  callee,
CallHandle  call,
ProcHandle  caller,
OA_ptr< Alias::InterAliasInterface interAlias,
OA_ptr< ParamBindings paramBind,
OA_ptr< CalleeToCallerVisitorIRInterface ir 
)

converts this set of locations to equivalent set in caller and returns a newly created set Since this needs an IRInterface, probably only callable from within a Manager

converts this set of locations to equivalent set in caller and returns a newly created set

Definition at line 350 of file LocDFSet.cpp.

References OA::DataFlow::debug, getLocIterator(), and LocDFSet().

Here is the call graph for this function:

OA_ptr< LocDFSet > OA::DataFlow::LocDFSet::calleeToCallerTransitive ( ProcHandle  callee,
CallHandle  call,
ProcHandle  caller,
OA_ptr< Alias::InterAliasInterface interAlias,
OA_ptr< ParamBindings paramBind,
OA_ptr< CalleeToCallerVisitorIRInterface ir 
)

converts this set of locations transitively to equivalent set in caller and returns a newly created set Since this needs an IRInterface, probably only callable from within a Manager

converts this set of locations transitively to equivalent set in caller and returns a newly created set

Definition at line 384 of file LocDFSet.cpp.

References OA::DataFlow::debug, OA::OA_ptr< T >::dump(), OA::MemRefsVisitor::getMemRefsIterator(), OA::MemRefsVisitor::hasMemRef(), hasOverlapLoc(), and LocDFSet().

Here is the call graph for this function:

OA_ptr< LocDFSet > OA::DataFlow::LocDFSet::callerToCallee ( ProcHandle  caller,
CallHandle  call,
ProcHandle  callee,
OA_ptr< Alias::InterAliasInterface interAlias,
OA_ptr< ParamBindings paramBind,
OA_ptr< CalleeToCallerVisitorIRInterface ir 
)

Converts this set of locations to equivalent set in callee and returns a newly created set. Since this needs an IRInterface, probably only callable from within a Manager

converts this set of locations to equivalent set in callerToCallee and returns a newly created set

Definition at line 103 of file LocDFSet.cpp.

References OA::DataFlow::debug, OA::EvalToMemRefVisitor::getMemRef(), hasOverlapLoc(), OA::EvalToMemRefVisitor::isMemRef(), LocDFSet(), and OA::MemRefExpr::USE.

Here is the call graph for this function:

OA_ptr< LocDFSet > OA::DataFlow::LocDFSet::callerToCalleeNot ( ProcHandle  caller,
CallHandle  call,
ProcHandle  callee,
OA_ptr< Alias::InterAliasInterface interAlias,
OA_ptr< ParamBindings paramBind,
OA_ptr< CalleeToCallerVisitorIRInterface ir 
)

Identifies the residual locations within this set that cannot be converted to an equivalent set in callee. and returns a newly created set of those residual locations. Since this needs an IRInterface, probably only callable from within a Manager

Definition at line 453 of file LocDFSet.cpp.

OA_ptr< LocDFSet > OA::DataFlow::LocDFSet::callerToCalleeTransitive ( ProcHandle  caller,
CallHandle  call,
ProcHandle  callee,
OA_ptr< Alias::InterAliasInterface interAlias,
OA_ptr< ParamBindings paramBind,
OA_ptr< CalleeToCallerVisitorIRInterface ir 
)

converts this set of locations transitively to equivalent set in callee and returns a newly created set Since this needs an IRInterface, probably only callable from within a Manager

converts this set of locations transitively to equivalent set in callee and returns a newly created set

Definition at line 280 of file LocDFSet.cpp.

References OA::DataFlow::debug, OA::OA_ptr< T >::dump(), OA::MemRefsVisitor::getMemRefsIterator(), OA::MemRefsVisitor::hasMemRef(), hasOverlapLoc(), and LocDFSet().

Here is the call graph for this function:

OA_ptr< DataFlowSet > OA::DataFlow::LocDFSet::clone (  ) 

Definition at line 43 of file LocDFSet.cpp.

Referenced by OA::Activity::ManagerUsefulStandard::meet().

void OA::DataFlow::LocDFSet::disassociateWithBaseHandle ( IRHandle  baseHandle,
OA_ptr< Location loc 
) [private]

Definition at line 770 of file LocDFSet.cpp.

References mBaseLocToSetMap.

void OA::DataFlow::LocDFSet::dump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface ir 
)

Definition at line 656 of file LocDFSet.cpp.

References OA::OA_ptr< T >::dump(), getLocIterator(), mBaseLocToSetMap, and OA::OA_ptr< T >::ptrEqual().

Here is the call graph for this function:

void OA::DataFlow::LocDFSet::dump ( std::ostream &  os  ) 

Definition at line 613 of file LocDFSet.cpp.

Referenced by OA::Activity::ManagerUsefulStandard::meet().

bool OA::DataFlow::LocDFSet::empty (  ) 

whether or not the set is empty

Definition at line 820 of file LocDFSet.cpp.

OA_ptr< LocIterator > OA::DataFlow::LocDFSet::getLocIterator (  ) 

iterator over locations

Definition at line 981 of file LocDFSet.cpp.

Referenced by calleeToCaller(), and dump().

OA_ptr< LocIterator > OA::DataFlow::LocDFSet::getOverlapLocIterator ( OA_ptr< Location loc  ) 

iterator over locations in set that overlap with given location

Definition at line 924 of file LocDFSet.cpp.

bool OA::DataFlow::LocDFSet::hasLoc ( OA_ptr< Location loc  ) 

whether or not the set contains the given location

Definition at line 975 of file LocDFSet.cpp.

bool OA::DataFlow::LocDFSet::hasOverlapLoc ( OA_ptr< Location loc  ) 

whether or not the set contains a location that overlaps with the given location

Definition at line 855 of file LocDFSet.cpp.

References OA::OA_ptr< T >::convert(), mBaseLocToSetMap, mHasUnknownLoc, mInvLocs, setHasOverlapLoc(), and updateMap().

Referenced by calleeToCallerTransitive(), callerToCallee(), and callerToCalleeTransitive().

Here is the call graph for this function:

void OA::DataFlow::LocDFSet::insert ( OA_ptr< Location loc  ) 

Definition at line 760 of file LocDFSet.cpp.

bool OA::DataFlow::LocDFSet::operator!= ( DataFlowSet other  )  const

Definition at line 59 of file LocDFSet.cpp.

bool OA::DataFlow::LocDFSet::operator== ( DataFlowSet other  )  const

Definition at line 52 of file LocDFSet.cpp.

void OA::DataFlow::LocDFSet::output ( OA::IRHandlesIRInterface ir  )  [virtual]

Implements OA::Annotation.

Definition at line 697 of file LocDFSet.cpp.

OA_ptr< LocDFSet > OA::DataFlow::LocDFSet::overlapLocSet ( OA_ptr< Location loc,
OA_ptr< LocSet aSet 
) [private]

whether the give loc overlaps with anything in the given set

Definition at line 905 of file LocDFSet.cpp.

References LocDFSet(), and OA::OA_ptr< T >::ptrEqual().

Here is the call graph for this function:

void OA::DataFlow::LocDFSet::remove ( OA_ptr< Location loc  ) 

Definition at line 811 of file LocDFSet.cpp.

void OA::DataFlow::LocDFSet::removeFromMap ( OA_ptr< Location loc  )  [private]

Definition at line 777 of file LocDFSet.cpp.

LocDFSet & OA::DataFlow::LocDFSet::setDifference ( LocDFSet other  ) 

Definition at line 90 of file LocDFSet.cpp.

bool OA::DataFlow::LocDFSet::setHasOverlapLoc ( OA_ptr< Location loc,
OA_ptr< LocSet aSet 
) [private]

whether the give loc overlaps with anything in the given set

Definition at line 836 of file LocDFSet.cpp.

Referenced by hasOverlapLoc().

LocDFSet & OA::DataFlow::LocDFSet::setIntersect ( LocDFSet other  ) 

Definition at line 79 of file LocDFSet.cpp.

LocDFSet & OA::DataFlow::LocDFSet::setUnion ( DataFlowSet other  ) 
void OA::DataFlow::LocDFSet::updateMap (  )  [private]

Definition at line 822 of file LocDFSet.cpp.

Referenced by hasOverlapLoc().


Friends And Related Function Documentation

friend class LocDFSetIterator [friend]

Definition at line 140 of file LocDFSet.hpp.


Member Data Documentation

Definition at line 159 of file LocDFSet.hpp.

Referenced by disassociateWithBaseHandle(), dump(), and hasOverlapLoc().

Definition at line 154 of file LocDFSet.hpp.

Definition at line 155 of file LocDFSet.hpp.

Referenced by addToMap(), and hasOverlapLoc().

Definition at line 156 of file LocDFSet.hpp.

Referenced by addToMap(), and hasOverlapLoc().

Definition at line 169 of file LocDFSet.hpp.

Definition at line 146 of file LocDFSet.hpp.

Referenced by LocDFSet().


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