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 34 of file LocDFSet.cpp.

References mBaseLocToSetMapValid, mInvLocs, and mSetPtr.

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 728 of file LocDFSet.cpp.

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

Referenced by insert(), and updateMap().

Here is the call graph for this function:

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

Definition at line 718 of file LocDFSet.cpp.

References mBaseLocToSetMap.

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 353 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 387 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 106 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

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 456 of file LocDFSet.cpp.

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

Here is the call graph for this function:

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 283 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 (  )  [virtual]

Implements OA::DataFlow::DataFlowSet.

Definition at line 46 of file LocDFSet.cpp.

References LocDFSet().

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

Here is the call graph for this function:

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

Definition at line 773 of file LocDFSet.cpp.

References mBaseLocToSetMap.

Referenced by removeFromMap().

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

Implements OA::DataFlow::DataFlowSet.

Definition at line 659 of file LocDFSet.cpp.

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

Here is the call graph for this function:

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

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

whether or not the set is empty

Definition at line 823 of file LocDFSet.cpp.

References mSetPtr.

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

iterator over locations

Definition at line 984 of file LocDFSet.cpp.

References LocDFSetIterator.

Referenced by calleeToCaller(), dump(), getOverlapLocIterator(), output(), and updateMap().

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

iterator over locations in set that overlap with given location

Definition at line 927 of file LocDFSet.cpp.

References OA::OA_ptr< T >::convert(), getLocIterator(), LocDFSet(), LocDFSetIterator, mBaseLocToSetMap, mBaseLocToSetMapValid, mHasUnknownLoc, mInvLocs, overlapLocSet(), and updateMap().

Referenced by callerToCalleeNot().

Here is the call graph for this function:

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

whether or not the set contains the given location

Definition at line 978 of file LocDFSet.cpp.

References mSetPtr.

Referenced by insert(), and remove().

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

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

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

Definition at line 858 of file LocDFSet.cpp.

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

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

Here is the call graph for this function:

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

Definition at line 763 of file LocDFSet.cpp.

References addToMap(), hasLoc(), and mSetPtr.

Referenced by callerToCalleeNot(), OA::Activity::ManagerICFGVaryActive::entryTransfer(), and OA::Activity::ManagerICFGUseful::exitTransfer().

Here is the call graph for this function:

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

Implements OA::DataFlow::DataFlowSet.

Definition at line 62 of file LocDFSet.cpp.

References mSetPtr.

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

Implements OA::DataFlow::DataFlowSet.

Definition at line 55 of file LocDFSet.cpp.

References mSetPtr.

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

Implements OA::Annotation.

Definition at line 700 of file LocDFSet.cpp.

References getLocIterator(), and OA::Annotation::sOutBuild.

Referenced by callerToCalleeNot(), and OA::Activity::ManagerICFGVaryActive::entryTransfer().

Here is the call graph for this function:

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 908 of file LocDFSet.cpp.

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

Referenced by getOverlapLocIterator().

Here is the call graph for this function:

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

Definition at line 814 of file LocDFSet.cpp.

References hasLoc(), mSetPtr, and removeFromMap().

Here is the call graph for this function:

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

Definition at line 780 of file LocDFSet.cpp.

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

Referenced by remove().

Here is the call graph for this function:

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

Definition at line 93 of file LocDFSet.cpp.

References mBaseLocToSetMapValid, and mSetPtr.

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 839 of file LocDFSet.cpp.

References OA::OA_ptr< T >::ptrEqual().

Referenced by hasOverlapLoc().

Here is the call graph for this function:

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

Definition at line 82 of file LocDFSet.cpp.

References mBaseLocToSetMapValid, and mSetPtr.

LocDFSet & OA::DataFlow::LocDFSet::setUnion ( DataFlowSet other  ) 

void OA::DataFlow::LocDFSet::updateMap (  )  [private]

Definition at line 825 of file LocDFSet.cpp.

References addToMap(), getLocIterator(), mBaseLocToSetMap, and mBaseLocToSetMapValid.

Referenced by getOverlapLocIterator(), and hasOverlapLoc().

Here is the call graph for this function:


Friends And Related Function Documentation

friend class LocDFSetIterator [friend]

Definition at line 140 of file LocDFSet.hpp.

Referenced by getLocIterator(), and getOverlapLocIterator().


Member Data Documentation

Definition at line 155 of file LocDFSet.hpp.

Referenced by addToMap(), getOverlapLocIterator(), hasOverlapLoc(), and removeFromMap().

Definition at line 156 of file LocDFSet.hpp.

Referenced by addToMap(), getOverlapLocIterator(), hasOverlapLoc(), LocDFSet(), and removeFromMap().

Definition at line 169 of file LocDFSet.hpp.


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

Generated on Fri Jul 24 05:40:44 2009 for OpenADFortTk (extended to Open64) by  doxygen 1.5.7.1