ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SgGraphTraversal< CFG > Class Template Referenceabstract

#include <graphProcessing.h>

Inheritance diagram for SgGraphTraversal< CFG >:
Collaboration diagram for SgGraphTraversal< CFG >:

Public Types

typedef boost::graph_traits
< CFG >::vertex_descriptor 
Vertex
 
typedef boost::graph_traits
< CFG >::edge_descriptor 
Edge
 
typedef StackFrameVector
< SynthesizedAttributeType > 
SynthesizedAttributesList
 

Public Member Functions

void constructPathAnalyzer (CFG *g, bool unbounded=false, Vertex end=0, Vertex begin=0, bool ns=true)
 This is the function that is used by the user directly to start the algorithm. More...
 
virtual void analyzePath (std::vector< Vertex > &pth)=0
 
std::vector< int > getInEdges (int &node, CFG *&g)
 Gets out edges with integer inputs, internal use only SgGraphTraversal::getInEdges Input: More...
 
std::vector< int > getOutEdges (int &node, CFG *&g)
 Gets out edges with integer inputs, internal use only SgGraphTraversal::getOutEdges Input: More...
 
int getTarget (int &n, CFG *&g)
 Gets the target of an edge SgGraphTraversal::getTarget Input: More...
 
int getSource (int &n, CFG *&g)
 Gets the source of an edge SgGraphTraversal::getSource Input: More...
 
 SgGraphTraversal ()
 
virtual ~SgGraphTraversal ()
 
 SgGraphTraversal (SgGraphTraversal &)
 
SgGraphTraversaloperator= (SgGraphTraversal &)
 
void firstPrepGraph (CFG *&g)
 DEPRECATED This is the function that preps the graph for traversal, currently this one isn't used but for many traversals on one visitor may necessitate. More...
 
virtual ~SgGraphTraversal ()
 
 SgGraphTraversal ()
 
 SgGraphTraversal (const SgGraphTraversal &)
 
const SgGraphTraversaloperator= (const SgGraphTraversal &)
 
InheritedAttributeType traverse (SgGraphNode *basenode, SgIncidenceDirectedGraph *g, InheritedAttributeType inheritedValue, InheritedAttributeType nullInherit, SgGraphNode *endnode, bool insep=false, bool pcHk=false)
 This is the function that is used by the user directly to start the algorithm. More...
 

Public Attributes

std::map< Vertex, int > vertintmap
 
std::map< Edge, int > edgeintmap
 
std::map< int, Vertexintvertmap
 
std::map< int, Edgeintedgemap
 
int pathnum
 
std::set< std::map< int,
std::set< int > > > 
subpathmap
 
int loopNum
 
int nullNum
 
std::set< SgDirectedGraphEdge * > nullEdgesOrdered
 
std::map< SgGraphNode *, int > loopNumMap
 
std::map< SgGraphNode *, int > pathValMap
 
int nullloops
 
std::vector< std::vector
< SgGraphNode * > > 
looppaths
 
std::vector< std::vector
< SgGraphNode * > > 
iLoops
 
std::vector< SgGraphNode * > ifstatements
 
int nullEdgesPaths
 
int turns
 
int numnodes
 
SgGraphNodenullnode
 
std::map< SgGraphNode *, int > primenode
 
bool done
 
std::set< SgGraphNode * > lstN
 
std::map< SgGraphNode
*, std::vector< std::set< int > > > 
lstordmap
 
std::set< SgGraphNode * > solvedLoops
 
std::map< SgGraphNode
*, std::vector< SgGraphNode * > > 
checkednodes
 
std::map< SgGraphNode
*, std::set< SgGraphNode * > > 
downed
 
InheritedAttributeType nullInherit
 
std::set< SgGraphNode * > loopSet
 

Protected Member Functions

virtual InheritedAttributeType evaluateInheritedAttribute (SgGraphNode *n, std::vector< InheritedAttributeType > inheritedValues)=0
 
virtual SynthesizedAttributeType evaluateSynthesizedAttribute (SgGraphNode *n, InheritedAttributeType in, SynthesizedAttributesList l)=0
 
virtual void pathAnalyze (std::vector< SgGraphNode * > &pth, bool loop=false, std::set< std::vector< SgGraphNode * > > &incloops=NULL)=0
 
SynthesizedAttributeType defaultSynthesizedAttribute (InheritedAttributeType)
 

Private Types

typedef boost::graph_traits
< CFG >::vertex_iterator 
vertex_iterator
 
typedef boost::graph_traits
< CFG >::out_edge_iterator 
out_edge_iterator
 
typedef boost::graph_traits
< CFG >::in_edge_iterator 
in_edge_iterator
 
typedef boost::graph_traits
< CFG >::edge_iterator 
edge_iterator
 

Private Member Functions

void prepareGraph (CFG *&g)
 This is the function that preps the graph for traversal. More...
 
void findClosuresAndMarkersAndEnumerate (CFG *&g)
 This calculates nodes with more than one in edge or more than one out edge. More...
 
std::set< std::vector< int > > traversePath (int begin, int end, CFG *&g, bool loop=false)
 
std::set< std::vector< int > > uTraversePath (int begin, int end, CFG *&g, bool loop, std::map< int, std::vector< std::vector< int > > > &localLoops)
 This function calculates all the permutations of loops on paths it also throws away duplicate paths Input: More...
 
std::vector< std::vector< int > > bfsTraversePath (int begin, int end, CFG *&g, bool loop=false)
 The function responsible for collecting all paths without loops, and all paths within lops that do not include other loops then sending those to uTraverse to assemble them into all paths with any combination of loops Input: More...
 
std::vector< int > unzipPath (std::vector< int > &path, CFG *&g, int start, int end)
 unzips the paths zipped by zipPath Input: More...
 
std::vector< int > zipPath (std::vector< int > &path, CFG *&g, int start, int end)
 Condenses paths to simply the first and last node and the ordered set of edges taken at nodes with more than 1 outedge Input: More...
 
std::vector< int > zipPath2 (std::vector< int > &path, CFG *&g)
 Condenses paths, currently deprecated... More...
 
void printCFGNode (int &cf, std::ofstream &o)
 
void printCFGNodeGeneric (int &cf, std::string prop, std::ofstream &o)
 
void printCFGEdge (int &cf, CFG *&cfg, std::ofstream &o)
 
void printHotness (CFG *&g)
 
void printPathDot (CFG *&g)
 
void computeOrder (CFG *&g, const int &begin)
 
DEPRECATED 

Currently unused but will be necessary for parallelization in progress SgGraphTraversal::computeOrder More...

 
void computeSubGraphs (const int &begin, const int &end, CFG *&g, int depthDifferential)
 
DEPRECATED 

This is a function to construct subgraphs for parallelization SgGraphTraversal::computeSubGraphs Input: More...

 
void getVertexPath (std::vector< int > path, CFG *&g, std::vector< Vertex > &vertexPath)
 Converts the path calculated by this algorithm to Vertices so users can access data SgGraphTraversal::getVertexPath. More...
 
void storeCompact (std::vector< int > path)
 DEPRECATED Currently unused, may eventually be modified for optimal storage purposes SgGraphTraversal::storeCompact. More...
 
SynthesizedAttributeType traversalResult ()
 
void solvePaths (SgIncidenceDirectedGraph *g, SgGraphNode *n, SgGraphNode *endnode)
 
void evaluatePaths (SgIncidenceDirectedGraph *g, SgGraphNode *realstartnode, SgGraphNode *endnode)
 
void evaluatePathsPar (SgIncidenceDirectedGraph *g, SgGraphNode *realstartnode, SgGraphNode *endnode)
 
bool disjoint (std::vector< SgGraphNode * > &path, std::vector< SgGraphNode * > &vec2) const
 
bool canSolve (SgIncidenceDirectedGraph *g, SgGraphNode *n)
 
void computeOrder (SgIncidenceDirectedGraph *g, SgGraphNode *n, SgGraphNode *endnode)
 
void computeInheritedOrdered (SgIncidenceDirectedGraph *g, SgGraphNode *n)
 
std::pair< bool, SgGraphNode * > getNextPar (SgIncidenceDirectedGraph *g, SgGraphNode *n)
 
std::pair< bool, SgGraphNode * > getNextChild (SgIncidenceDirectedGraph *g, SgGraphNode *n)
 
bool computable (SgIncidenceDirectedGraph *g, SgGraphNode *n)
 
void evalNodeOrdered (SgIncidenceDirectedGraph *g, SgGraphNode *n)
 
bool canEval (SgIncidenceDirectedGraph *g, SgGraphNode *n)
 
void setPathVal (SgIncidenceDirectedGraph *g, SgGraphNode *n)
 
void printNodePlusEdgesForAnalysis (SgIncidenceDirectedGraph *g, SgGraphNode *n, int loopNum, int pathVal, std::ofstream &ss)
 
void printNodePlusEdgesForAnalysisPath (SgIncidenceDirectedGraph *g, std::vector< SgGraphNode * > n, int loopNum, int pathVal, std::ofstream &ss)
 
void printNodeForAnalysis (SgGraphNode *n, int loopNum, int pathNum, std::ofstream &ss)
 
void printEdgeForAnalysis (SgDirectedGraphEdge *e, bool isNullEdge, std::ofstream &ss)
 
void printEdgeForAnalysisPath (SgGraphNode *g1, SgGraphNode *g2, std::ofstream &ss)
 

Private Attributes

int normals
 
int abnormals
 
bool needssafety
 
int recursed
 
int checkedfound
 
int stoppedpaths
 
std::vector< int > sources
 
std::vector< int > sinks
 
std::vector< int > recursiveLoops
 
std::vector< int > recurses
 
std::map< int, int > ptsNum
 
bool borrowed
 
std::set< int > badloop
 
std::map< int, std::vector
< std::vector< int > > > 
totalLoops
 
std::map< int, std::string > nodeStrings
 
int sourcenum
 
unsigned long long evaledpaths
 
int badpaths
 
int workingthreadnum
 
bool workingthread
 
std::map< int, std::set
< std::vector< int > > > 
loopStore
 
std::vector< std::vector< int > > pathStore
 
std::map< int, std::vector< int > > subpathglobal
 
std::map< std::vector< int >, int > subpathglobalinv
 
int nextsubpath
 
std::vector< int > orderOfNodes
 
std::vector< std::map< Vertex,
Vertex > > 
SubGraphGraphMap
 
std::vector< std::map< Vertex,
Vertex > > 
GraphSubGraphMap
 
std::vector< CFG * > subGraphVector
 
int nextNode
 
int nextEdge
 
std::vector< int > markers
 
std::vector< int > closures
 
std::map< int, int > markerIndex
 
std::map< int, std::vector< int > > pathsAtMarkers
 
bool bound
 
double distime
 
std::set< SgGraphNode * > ploops
 
std::map< SgGraphNode
*, std::set< std::vector
< SgGraphNode * > > > 
lpbegins
 
std::map< SgGraphNode *, int > frksLeft
 
int currm
 
int dpMax
 
int repEval
 
bool pathCheck
 
int pathsSize
 
std::map< SgGraphNode
*, InheritedAttributeType > 
known
 
std::vector
< InheritedAttributeType > 
connectNodes
 
std::map< SgGraphNode *, bool > solved
 
std::set< SgGraphNode * > solvedset
 
SynthesizedAttributesListsynthesizedAttributes
 
std::map< SgGraphNode *, int > nodeInEdgesNum
 
int currprime
 
std::vector< SgGraphNode * > endnodefakes
 
std::map< SgGraphNode
*, std::vector< std::vector
< SgGraphNode * > > > 
pathsAtMk
 
std::set< SgGraphNode * > mkloops
 
std::map< SgGraphNode
*, std::set< std::vector
< SgGraphNode * > > > 
mkloopmap
 
std::map< SgGraphNode
*, std::set< std::vector
< SgGraphNode * > > > 
subPathsAtMk
 
std::vector< SgGraphNode * > mkglobal
 
std::vector< SgGraphNode * > clglobal
 
bool inseparable
 
std::vector< std::set
< SgGraphNode * > > 
closuresVec
 
std::set< std::vector
< SgGraphNode * > > 
flatpaths
 
std::map< SgGraphNode
*, InheritedAttributeType > 
inhVals
 
std::set< SgDirectedGraphEdge * > seenEdges
 
std::set< SgDirectedGraphEdge * > nullEdges
 
std::set< SgGraphNode * > clsT
 
std::map< SgGraphNode *, int > oVals
 
std::set< SgGraphNode * > completedNodesPath
 
std::set< std::pair
< SgGraphNode *, SgGraphNode * > > 
completedEdgesPath
 
std::map< int, SgGraphNode * > iVals
 
std::set< SgDirectedGraphEdge * > nullEdgesOrderedOut
 
std::set< SgDirectedGraphEdge * > completedEdgesOut
 
std::set< SgDirectedGraphEdge * > completedEdges
 
std::set< SgGraphNode * > compPar
 
std::set< SgGraphNode * > compChild
 
std::set< SgGraphNode * > computedNodes
 
SgGraphNodest
 
SgGraphNodeen
 
double fllp
 
int loopnum
 

Detailed Description

template<class CFG>
class SgGraphTraversal< CFG >

Definition at line 80 of file graphProcessing.h.

Member Typedef Documentation

template<class CFG>
typedef boost::graph_traits<CFG>::vertex_descriptor SgGraphTraversal< CFG >::Vertex

Definition at line 84 of file graphProcessing.h.

template<class CFG>
typedef boost::graph_traits<CFG>:: edge_descriptor SgGraphTraversal< CFG >::Edge

Definition at line 85 of file graphProcessing.h.

template<class CFG>
typedef boost::graph_traits<CFG>::vertex_iterator SgGraphTraversal< CFG >::vertex_iterator
private

Definition at line 174 of file graphProcessing.h.

template<class CFG>
typedef boost::graph_traits<CFG>::out_edge_iterator SgGraphTraversal< CFG >::out_edge_iterator
private

Definition at line 175 of file graphProcessing.h.

template<class CFG>
typedef boost::graph_traits<CFG>::in_edge_iterator SgGraphTraversal< CFG >::in_edge_iterator
private

Definition at line 176 of file graphProcessing.h.

template<class CFG>
typedef boost::graph_traits<CFG>::edge_iterator SgGraphTraversal< CFG >::edge_iterator
private

Definition at line 177 of file graphProcessing.h.

template<class CFG>
typedef StackFrameVector<SynthesizedAttributeType> SgGraphTraversal< CFG >::SynthesizedAttributesList

Definition at line 137 of file graphProcessingSgIncGraph.h.

Constructor & Destructor Documentation

template<class InheritedAttributeType , class SynthesizedAttributeType >
SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::SgGraphTraversal ( )

Definition at line 190 of file graphProcessing.h.

template<class InheritedAttributeType , class SynthesizedAttributeType >
SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::~SgGraphTraversal ( )
virtual

Definition at line 208 of file graphProcessing.h.

template<class CFG>
SgGraphTraversal< CFG >::SgGraphTraversal ( SgGraphTraversal< CFG > &  )
template<class CFG>
virtual SgGraphTraversal< CFG >::~SgGraphTraversal ( )
virtual
template<class CFG>
SgGraphTraversal< CFG >::SgGraphTraversal ( )
template<class CFG>
SgGraphTraversal< CFG >::SgGraphTraversal ( const SgGraphTraversal< CFG > &  )

Member Function Documentation

template<class CFG>
void SgGraphTraversal< CFG >::constructPathAnalyzer ( CFG *  g,
bool  unbounded = false,
Vertex  begin = 0,
Vertex  end = 0,
bool  ns = true 
)

This is the function that is used by the user directly to start the algorithm.

It is immediately available to the user

SgGraphTraversal::constructPathAnalyzer Input:

Parameters
begin]Vertex, starting node
end]Vertex, endnode
g]CFG* g, CFG calculated previously

Definition at line 1103 of file graphProcessing.h.

Referenced by yicesCheck().

template<class CFG>
virtual void SgGraphTraversal< CFG >::analyzePath ( std::vector< Vertex > &  pth)
pure virtual
template<class CFG>
std::vector< int > SgGraphTraversal< CFG >::getInEdges ( int &  node,
CFG *&  g 
)

Gets out edges with integer inputs, internal use only SgGraphTraversal::getInEdges Input:

Parameters
node]int, integer representation of the node to get the in edges from
g]CFG* g, CFG

Definition at line 261 of file graphProcessing.h.

References edgeintmap.

template<class CFG>
std::vector< int > SgGraphTraversal< CFG >::getOutEdges ( int &  node,
CFG *&  g 
)

Gets out edges with integer inputs, internal use only SgGraphTraversal::getOutEdges Input:

Parameters
node]int, integer representation of the node to get the out edges from
g]CFG* g, CFG

Definition at line 286 of file graphProcessing.h.

References edgeintmap.

template<class CFG>
int SgGraphTraversal< CFG >::getTarget ( int &  edge,
CFG *&  g 
)
inline

Gets the target of an edge SgGraphTraversal::getTarget Input:

Parameters
edge]int& integer representation of edge in quesution
g]the CFG*& CFG used

Definition at line 243 of file graphProcessing.h.

References intedgemap.

template<class CFG>
int SgGraphTraversal< CFG >::getSource ( int &  edge,
CFG *&  g 
)
inline

Gets the source of an edge SgGraphTraversal::getSource Input:

Parameters
edge]int& integer representation of edge in question
g]CFG*& the CFG used

Definition at line 224 of file graphProcessing.h.

References intedgemap.

template<class CFG >
SgGraphTraversal< CFG > & SgGraphTraversal< CFG >::operator= ( SgGraphTraversal< CFG > &  other)

Definition at line 199 of file graphProcessing.h.

template<class CFG>
void SgGraphTraversal< CFG >::firstPrepGraph ( CFG *&  g)

DEPRECATED This is the function that preps the graph for traversal, currently this one isn't used but for many traversals on one visitor may necessitate.

SgGraphTraversal::firstPrepGraph Input:

Parameters
g]CFG*& g, CFG calculated previously

Definition at line 1351 of file graphProcessing.h.

template<class CFG>
void SgGraphTraversal< CFG >::prepareGraph ( CFG *&  g)
private

This is the function that preps the graph for traversal.

SgGraphTraversal::prepareGraph Input:

Parameters
g]CFG*& g, CFG calculated previously

Definition at line 1330 of file graphProcessing.h.

template<class CFG>
void SgGraphTraversal< CFG >::findClosuresAndMarkersAndEnumerate ( CFG *&  g)
private

This calculates nodes with more than one in edge or more than one out edge.

SgGraphTraversal::findClosuresAndMarkers Input:

Parameters
g]CFG*& g, CFG calculated previously

Definition at line 1371 of file graphProcessing.h.

References edgeintmap, getTarget(), and intedgemap.

template<class CFG>
std::set<std::vector<int> > SgGraphTraversal< CFG >::traversePath ( int  begin,
int  end,
CFG *&  g,
bool  loop = false 
)
private
template<class CFG>
std::set< std::vector< int > > SgGraphTraversal< CFG >::uTraversePath ( int  begin,
int  end,
CFG *&  g,
bool  loop,
std::map< int, std::vector< std::vector< int > > > &  globalLoopPaths 
)
private

This function calculates all the permutations of loops on paths it also throws away duplicate paths Input:

Parameters
begin]integer representation of first node
end]integer representation of the final node
g]ambient CFG
globalLoopPaths]connects an integer representation of a node to all possible loops starting at that node

Definition at line 737 of file graphProcessing.h.

References VirtualCFG::iterator::begin(), VirtualCFG::iterator::end(), SageInterface::find(), pathnum, and paths.

template<class CFG>
std::vector< std::vector< int > > SgGraphTraversal< CFG >::bfsTraversePath ( int  begin,
int  end,
CFG *&  g,
bool  loop = false 
)
private

The function responsible for collecting all paths without loops, and all paths within lops that do not include other loops then sending those to uTraverse to assemble them into all paths with any combination of loops Input:

Parameters
begin]integer representation of the first node
end]integer representation of the last node (or -1 if its not bounded)
g]CFG*, the ambient CFG
loop]boolean expressing whether or not we are calculating paths contained within a loop

Definition at line 442 of file graphProcessing.h.

References VirtualCFG::iterator::begin(), VirtualCFG::iterator::end(), SageInterface::find(), getTarget(), and paths.

template<class CFG>
std::vector< int > SgGraphTraversal< CFG >::unzipPath ( std::vector< int > &  pzipped,
CFG *&  g,
int  start,
int  end 
)
private

unzips the paths zipped by zipPath Input:

Parameters
pzipped]the zipped path
CFG]the ambient graph
start]the integer representation of the first node (used to check that zipPath is working correctly)
end]the integer representation of the end node

Definition at line 373 of file graphProcessing.h.

References getSource(), and getTarget().

template<class CFG>
std::vector< int > SgGraphTraversal< CFG >::zipPath ( std::vector< int > &  pth,
CFG *&  g,
int  start,
int  end 
)
private

Condenses paths to simply the first and last node and the ordered set of edges taken at nodes with more than 1 outedge Input:

Parameters
pth]std::vector<int>, the original path
g]CFG*, the ambient graph
start]integer representation of the first node
end]integer representation of the last node

Definition at line 337 of file graphProcessing.h.

References SageInterface::find(), and getTarget().

template<class CFG>
std::vector< int > SgGraphTraversal< CFG >::zipPath2 ( std::vector< int > &  pth,
CFG *&  g 
)
inlineprivate

Condenses paths, currently deprecated...

Input:

Parameters
pth]std::vector<int> the original path
g]CFG*, the ambient graph Output: zipped path

Definition at line 311 of file graphProcessing.h.

References SageInterface::find().

template<class CFG >
void SgGraphTraversal< CFG >::printCFGNode ( int &  cf,
std::ofstream &  o 
)
private

Definition at line 1232 of file graphProcessing.h.

template<class CFG >
void SgGraphTraversal< CFG >::printCFGNodeGeneric ( int &  cf,
std::string  prop,
std::ofstream &  o 
)
private

Definition at line 1224 of file graphProcessing.h.

template<class CFG>
void SgGraphTraversal< CFG >::printCFGEdge ( int &  cf,
CFG *&  cfg,
std::ofstream &  o 
)
private

Definition at line 1249 of file graphProcessing.h.

References getSource(), and getTarget().

template<class CFG>
void SgGraphTraversal< CFG >::printHotness ( CFG *&  g)
private

Definition at line 1259 of file graphProcessing.h.

References edgeintmap.

template<class CFG>
void SgGraphTraversal< CFG >::printPathDot ( CFG *&  g)
private

Definition at line 1286 of file graphProcessing.h.

References edgeintmap.

template<class CFG>
void SgGraphTraversal< CFG >::computeOrder ( CFG *&  g,
const int &  begin 
)
private

DEPRECATED 

Currently unused but will be necessary for parallelization in progress SgGraphTraversal::computeOrder

Parameters
g]CFG* cfg in question [begin] const int, integer representation of source node

Definition at line 1424 of file graphProcessing.h.

References getTarget(), StaticCFG::inEdges(), and StaticCFG::outEdges().

template<class CFG>
void SgGraphTraversal< CFG >::computeSubGraphs ( const int &  begin,
const int &  end,
CFG *&  g,
int  depthDifferential 
)
private

DEPRECATED 

This is a function to construct subgraphs for parallelization SgGraphTraversal::computeSubGraphs Input:

Parameters
begin]const int, starting point
end]const int ending point
g]const CFG*, control flow graph to compute
depthDifferential]int, used to specify how large the subgraph should be

Definition at line 1168 of file graphProcessing.h.

References getTarget(), and StaticCFG::outEdges().

template<class CFG>
void SgGraphTraversal< CFG >::getVertexPath ( std::vector< int >  path,
CFG *&  g,
std::vector< Vertex > &  vertexPath 
)
private

Converts the path calculated by this algorithm to Vertices so users can access data SgGraphTraversal::getVertexPath.

Parameters
path]integer representation of path
g]CFG*, cfg in question
vertexPath]for some reason this can't be a return value so it is changed via pass by reference

Definition at line 1492 of file graphProcessing.h.

template<class CFG >
void SgGraphTraversal< CFG >::storeCompact ( std::vector< int >  compactPath)
private

DEPRECATED Currently unused, may eventually be modified for optimal storage purposes SgGraphTraversal::storeCompact.

Parameters
compactPath]path to be compactified

Definition at line 1510 of file graphProcessing.h.

template<class InheritedAttributeType , class SynthesizedAttributeType >
const SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType > & SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::operator= ( const SgGraphTraversal< CFG > &  other)
template<class InheritedAttributeType , class SynthesizedAttributeType >
InheritedAttributeType SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::traverse ( SgGraphNode n,
SgIncidenceDirectedGraph g,
InheritedAttributeType  inheritedValue,
InheritedAttributeType  nullI,
SgGraphNode endnode,
bool  insep = false,
bool  pCh = false 
)

This is the function that is used by the user directly to start the algorithm.

It is immediately available to the user

SgGraphTraversal::traverse Input:

Parameters
n]n starting node
g]SgIncidenceDirectedGraph* g, CFG calculated previously
inheritedValue]InheritedAttributeType inheritedValue, value of the starting node
nullI]InheritedAttributeType nullI, value of the null Attribute, i.e. what to attribute to a node with no value\
endnode]SgGraphNode* endnode, final node
insep]boolean to decide inseparability of the analysis function, not yet in use, set automatically to false
pCh]deprecated, set to false
Returns
InheritedAttributeType, the value of the attribute at the end node

Definition at line 360 of file graphProcessingSgIncGraph.h.

References getCPUTime(), and timeDifference().

template<class CFG>
virtual InheritedAttributeType SgGraphTraversal< CFG >::evaluateInheritedAttribute ( SgGraphNode n,
std::vector< InheritedAttributeType >  inheritedValues 
)
protectedpure virtual
template<class CFG>
virtual SynthesizedAttributeType SgGraphTraversal< CFG >::evaluateSynthesizedAttribute ( SgGraphNode n,
InheritedAttributeType  in,
SynthesizedAttributesList  l 
)
protectedpure virtual
template<class CFG>
virtual void SgGraphTraversal< CFG >::pathAnalyze ( std::vector< SgGraphNode * > &  pth,
bool  loop = false,
std::set< std::vector< SgGraphNode * > > &  incloops = NULL 
)
protectedpure virtual
template<class InheritedAttributeType , class SynthesizedAttributeType >
SynthesizedAttributeType SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::defaultSynthesizedAttribute ( InheritedAttributeType  inh)
protected

Definition at line 1595 of file graphProcessingSgIncGraph.h.

template<class CFG>
SynthesizedAttributeType SgGraphTraversal< CFG >::traversalResult ( )
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::solvePaths ( SgIncidenceDirectedGraph g,
SgGraphNode n,
SgGraphNode endnode 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::evaluatePaths ( SgIncidenceDirectedGraph g,
SgGraphNode realstartnode,
SgGraphNode endnode 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::evaluatePathsPar ( SgIncidenceDirectedGraph g,
SgGraphNode realstartnode,
SgGraphNode endnode 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
bool SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::disjoint ( std::vector< SgGraphNode * > &  path,
std::vector< SgGraphNode * > &  vec2 
) const
private

Definition at line 531 of file graphProcessingSgIncGraph.h.

References SageInterface::find().

template<class InheritedAttributeType , class SynthesizedAttributeType >
bool SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::canSolve ( SgIncidenceDirectedGraph g,
SgGraphNode n 
)
private
template<class InheritedAttributeType, class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::computeOrder ( SgIncidenceDirectedGraph g,
SgGraphNode n,
SgGraphNode endnode 
)
private

Definition at line 1607 of file graphProcessingSgIncGraph.h.

template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::computeInheritedOrdered ( SgIncidenceDirectedGraph g,
SgGraphNode n 
)
private

Definition at line 1673 of file graphProcessingSgIncGraph.h.

template<class InheritedAttributeType , class SynthesizedAttributeType >
std::pair< bool, SgGraphNode * > SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::getNextPar ( SgIncidenceDirectedGraph g,
SgGraphNode n 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
std::pair< bool, SgGraphNode * > SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::getNextChild ( SgIncidenceDirectedGraph g,
SgGraphNode n 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
bool SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::computable ( SgIncidenceDirectedGraph g,
SgGraphNode n 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::evalNodeOrdered ( SgIncidenceDirectedGraph g,
SgGraphNode n 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
bool SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::canEval ( SgIncidenceDirectedGraph g,
SgGraphNode n 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::setPathVal ( SgIncidenceDirectedGraph g,
SgGraphNode n 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::printNodePlusEdgesForAnalysis ( SgIncidenceDirectedGraph g,
SgGraphNode n,
int  loopNum,
int  pathVal,
std::ofstream &  ss 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::printNodePlusEdgesForAnalysisPath ( SgIncidenceDirectedGraph g,
std::vector< SgGraphNode * >  n,
int  loopNum,
int  pathVal,
std::ofstream &  ss 
)
private

Definition at line 1374 of file graphProcessingSgIncGraph.h.

template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::printNodeForAnalysis ( SgGraphNode n,
int  loopNum,
int  pathNum,
std::ofstream &  ss 
)
private

Definition at line 1399 of file graphProcessingSgIncGraph.h.

References SgGraphNode::get_index().

template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::printEdgeForAnalysis ( SgDirectedGraphEdge e,
bool  isNullEdge,
std::ofstream &  ss 
)
private
template<class InheritedAttributeType , class SynthesizedAttributeType >
void SgGraphTraversal< InheritedAttributeType, SynthesizedAttributeType >::printEdgeForAnalysisPath ( SgGraphNode g1,
SgGraphNode g2,
std::ofstream &  ss 
)
private

Definition at line 1424 of file graphProcessingSgIncGraph.h.

References SgGraphNode::get_index().

Member Data Documentation

template<class CFG>
std::map<Vertex, int> SgGraphTraversal< CFG >::vertintmap

Definition at line 93 of file graphProcessing.h.

template<class CFG>
std::map<Edge, int> SgGraphTraversal< CFG >::edgeintmap

Definition at line 94 of file graphProcessing.h.

template<class CFG>
std::map<int, Vertex> SgGraphTraversal< CFG >::intvertmap

Definition at line 95 of file graphProcessing.h.

template<class CFG>
std::map<int, Edge> SgGraphTraversal< CFG >::intedgemap

Definition at line 96 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::pathnum

Definition at line 101 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::normals
private

Definition at line 108 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::abnormals
private

Definition at line 109 of file graphProcessing.h.

template<class CFG>
bool SgGraphTraversal< CFG >::needssafety
private

Definition at line 110 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::recursed
private

Definition at line 111 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::checkedfound
private

Definition at line 112 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::stoppedpaths
private

Definition at line 122 of file graphProcessing.h.

template<class CFG>
std::vector<int> SgGraphTraversal< CFG >::sources
private

Definition at line 138 of file graphProcessing.h.

template<class CFG>
std::vector<int> SgGraphTraversal< CFG >::sinks
private

Definition at line 139 of file graphProcessing.h.

template<class CFG>
std::vector<int> SgGraphTraversal< CFG >::recursiveLoops
private

Definition at line 140 of file graphProcessing.h.

template<class CFG>
std::vector<int> SgGraphTraversal< CFG >::recurses
private

Definition at line 141 of file graphProcessing.h.

template<class CFG>
std::map<int, int> SgGraphTraversal< CFG >::ptsNum
private

Definition at line 142 of file graphProcessing.h.

template<class CFG>
bool SgGraphTraversal< CFG >::borrowed
private

Definition at line 143 of file graphProcessing.h.

template<class CFG>
std::set<int> SgGraphTraversal< CFG >::badloop
private

Definition at line 144 of file graphProcessing.h.

template<class CFG>
std::map<int, std::vector<std::vector<int> > > SgGraphTraversal< CFG >::totalLoops
private

Definition at line 145 of file graphProcessing.h.

template<class CFG>
std::map<int, std::string> SgGraphTraversal< CFG >::nodeStrings
private

Definition at line 147 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::sourcenum
private

Definition at line 148 of file graphProcessing.h.

template<class CFG>
unsigned long long SgGraphTraversal< CFG >::evaledpaths
private

Definition at line 149 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::badpaths
private

Definition at line 150 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::workingthreadnum
private

Definition at line 151 of file graphProcessing.h.

template<class CFG>
bool SgGraphTraversal< CFG >::workingthread
private

Definition at line 152 of file graphProcessing.h.

template<class CFG>
std::map<int, std::set<std::vector<int> > > SgGraphTraversal< CFG >::loopStore
private

Definition at line 153 of file graphProcessing.h.

template<class CFG>
std::vector<std::vector<int> > SgGraphTraversal< CFG >::pathStore
private

Definition at line 154 of file graphProcessing.h.

template<class CFG>
std::map<int, std::vector<int> > SgGraphTraversal< CFG >::subpathglobal
private

Definition at line 155 of file graphProcessing.h.

template<class CFG>
std::map<std::vector<int>, int> SgGraphTraversal< CFG >::subpathglobalinv
private

Definition at line 156 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::nextsubpath
private

Definition at line 157 of file graphProcessing.h.

template<class CFG>
std::vector<int> SgGraphTraversal< CFG >::orderOfNodes
private

Definition at line 158 of file graphProcessing.h.

template<class CFG>
std::vector<std::map<Vertex, Vertex> > SgGraphTraversal< CFG >::SubGraphGraphMap
private

Definition at line 163 of file graphProcessing.h.

template<class CFG>
std::vector<std::map<Vertex, Vertex> > SgGraphTraversal< CFG >::GraphSubGraphMap
private

Definition at line 164 of file graphProcessing.h.

template<class CFG>
std::vector<CFG*> SgGraphTraversal< CFG >::subGraphVector
private

Definition at line 165 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::nextNode
private

Definition at line 168 of file graphProcessing.h.

template<class CFG>
int SgGraphTraversal< CFG >::nextEdge
private

Definition at line 169 of file graphProcessing.h.

template<class CFG>
std::vector<int> SgGraphTraversal< CFG >::markers
private

Definition at line 170 of file graphProcessing.h.

template<class CFG>
std::vector<int> SgGraphTraversal< CFG >::closures
private

Definition at line 171 of file graphProcessing.h.

template<class CFG>
std::map<int, int> SgGraphTraversal< CFG >::markerIndex
private

Definition at line 172 of file graphProcessing.h.

template<class CFG>
std::map<int, std::vector<int> > SgGraphTraversal< CFG >::pathsAtMarkers
private

Definition at line 173 of file graphProcessing.h.

template<class CFG>
bool SgGraphTraversal< CFG >::bound
private

Definition at line 178 of file graphProcessing.h.

template<class CFG>
std::set<std::map<int, std::set<int> > > SgGraphTraversal< CFG >::subpathmap

Definition at line 119 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::loopNum

Definition at line 120 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::nullNum

Definition at line 121 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgDirectedGraphEdge*> SgGraphTraversal< CFG >::nullEdgesOrdered

Definition at line 122 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, int> SgGraphTraversal< CFG >::loopNumMap

Definition at line 123 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, int> SgGraphTraversal< CFG >::pathValMap

Definition at line 124 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::nullloops

Definition at line 125 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::vector<std::vector<SgGraphNode*> > SgGraphTraversal< CFG >::looppaths

Definition at line 126 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::vector<std::vector<SgGraphNode*> > SgGraphTraversal< CFG >::iLoops

Definition at line 127 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::vector<SgGraphNode*> SgGraphTraversal< CFG >::ifstatements

Definition at line 128 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::nullEdgesPaths

Definition at line 132 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::turns

Definition at line 133 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::numnodes

Definition at line 142 of file graphProcessingSgIncGraph.h.

template<class CFG>
SgGraphNode* SgGraphTraversal< CFG >::nullnode

Definition at line 145 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, int> SgGraphTraversal< CFG >::primenode

Definition at line 146 of file graphProcessingSgIncGraph.h.

template<class CFG>
bool SgGraphTraversal< CFG >::done

Definition at line 147 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::lstN

Definition at line 149 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, std::vector<std::set<int> > > SgGraphTraversal< CFG >::lstordmap

Definition at line 150 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::solvedLoops

Definition at line 151 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, std::vector<SgGraphNode*> > SgGraphTraversal< CFG >::checkednodes

Definition at line 152 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, std::set<SgGraphNode*> > SgGraphTraversal< CFG >::downed

Definition at line 153 of file graphProcessingSgIncGraph.h.

template<class CFG>
InheritedAttributeType SgGraphTraversal< CFG >::nullInherit

Definition at line 157 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::loopSet

Definition at line 162 of file graphProcessingSgIncGraph.h.

template<class CFG>
double SgGraphTraversal< CFG >::distime
private

Definition at line 187 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::ploops
private

Definition at line 190 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, std::set<std::vector<SgGraphNode*> > > SgGraphTraversal< CFG >::lpbegins
private

Definition at line 191 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, int> SgGraphTraversal< CFG >::frksLeft
private

Definition at line 192 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::currm
private

Definition at line 193 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::dpMax
private

Definition at line 194 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::repEval
private

Definition at line 195 of file graphProcessingSgIncGraph.h.

template<class CFG>
bool SgGraphTraversal< CFG >::pathCheck
private

Definition at line 196 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::pathsSize
private

Definition at line 197 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, InheritedAttributeType> SgGraphTraversal< CFG >::known
private

Definition at line 201 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::vector<InheritedAttributeType> SgGraphTraversal< CFG >::connectNodes
private

Definition at line 202 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, bool> SgGraphTraversal< CFG >::solved
private

Definition at line 203 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::solvedset
private

Definition at line 204 of file graphProcessingSgIncGraph.h.

template<class CFG>
SynthesizedAttributesList* SgGraphTraversal< CFG >::synthesizedAttributes
private

Definition at line 206 of file graphProcessingSgIncGraph.h.

Referenced by SgGraphTraversal< CFG >::operator=().

template<class CFG>
std::map<SgGraphNode*, int> SgGraphTraversal< CFG >::nodeInEdgesNum
private

Definition at line 213 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::currprime
private

Definition at line 214 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::vector<SgGraphNode*> SgGraphTraversal< CFG >::endnodefakes
private

Definition at line 215 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, std::vector<std::vector<SgGraphNode*> > > SgGraphTraversal< CFG >::pathsAtMk
private

Definition at line 216 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::mkloops
private

Definition at line 217 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, std::set<std::vector<SgGraphNode*> > > SgGraphTraversal< CFG >::mkloopmap
private

Definition at line 218 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, std::set<std::vector<SgGraphNode*> > > SgGraphTraversal< CFG >::subPathsAtMk
private

Definition at line 219 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::vector<SgGraphNode*> SgGraphTraversal< CFG >::mkglobal
private

Definition at line 220 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::vector<SgGraphNode*> SgGraphTraversal< CFG >::clglobal
private

Definition at line 221 of file graphProcessingSgIncGraph.h.

template<class CFG>
bool SgGraphTraversal< CFG >::inseparable
private

Definition at line 222 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::vector<std::set<SgGraphNode*> > SgGraphTraversal< CFG >::closuresVec
private

Definition at line 224 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<std::vector<SgGraphNode*> > SgGraphTraversal< CFG >::flatpaths
private

Definition at line 228 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, InheritedAttributeType> SgGraphTraversal< CFG >::inhVals
private

Definition at line 231 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgDirectedGraphEdge*> SgGraphTraversal< CFG >::seenEdges
private

Definition at line 232 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgDirectedGraphEdge*> SgGraphTraversal< CFG >::nullEdges
private

Definition at line 233 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::clsT
private

Definition at line 234 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<SgGraphNode*, int> SgGraphTraversal< CFG >::oVals
private

Definition at line 241 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::completedNodesPath
private

Definition at line 247 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<std::pair<SgGraphNode*, SgGraphNode*> > SgGraphTraversal< CFG >::completedEdgesPath
private

Definition at line 248 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::map<int, SgGraphNode*> SgGraphTraversal< CFG >::iVals
private

Definition at line 251 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgDirectedGraphEdge*> SgGraphTraversal< CFG >::nullEdgesOrderedOut
private

Definition at line 253 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgDirectedGraphEdge*> SgGraphTraversal< CFG >::completedEdgesOut
private

Definition at line 254 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgDirectedGraphEdge*> SgGraphTraversal< CFG >::completedEdges
private

Definition at line 255 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::compPar
private

Definition at line 256 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::compChild
private

Definition at line 257 of file graphProcessingSgIncGraph.h.

template<class CFG>
std::set<SgGraphNode*> SgGraphTraversal< CFG >::computedNodes
private

Definition at line 258 of file graphProcessingSgIncGraph.h.

template<class CFG>
SgGraphNode* SgGraphTraversal< CFG >::st
private

Definition at line 259 of file graphProcessingSgIncGraph.h.

template<class CFG>
SgGraphNode* SgGraphTraversal< CFG >::en
private

Definition at line 260 of file graphProcessingSgIncGraph.h.

template<class CFG>
double SgGraphTraversal< CFG >::fllp
private

Definition at line 261 of file graphProcessingSgIncGraph.h.

template<class CFG>
int SgGraphTraversal< CFG >::loopnum
private

Definition at line 262 of file graphProcessingSgIncGraph.h.


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