ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
virtualCFG.h File Reference
#include <string>
#include <vector>
#include <assert.h>
#include "rosedll.h"
Include dependency graph for virtualCFG.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  VirtualCFG::CFGNode
 A node in the control flow graph. More...
 
class  VirtualCFG::CFGEdge
 A control flow edge connecting two CFG nodes, with an edge condition to indicate edge types. More...
 
class  VirtualCFG::CFGPath
 
class  VirtualCFG::InterestingNode
 
class  VirtualCFG::InterestingEdge
 

Namespaces

 VirtualCFG
 

Constant Groups

 VirtualCFG
 

Macros

#define SGFUNCTIONCALLEXP_INTERPROCEDURAL_INDEX   2
 
#define SGCONSTRUCTORINITIALIZER_INTERPROCEDURAL_INDEX   1
 
#define SGFUNCTIONDEFINITION_INTERPROCEDURAL_INDEX   2
 
#define SGFUNCTIONCALLEXP_INTERPROCEDURAL_INDEX   2
 
#define SGCONSTRUCTORINITIALIZER_INTERPROCEDURAL_INDEX   1
 
#define SGFUNCTIONDEFINITION_INTERPROCEDURAL_INDEX   2
 

Enumerations

enum  VirtualCFG::EdgeConditionKind {
  VirtualCFG::eckUnconditional,
  VirtualCFG::eckTrue,
  VirtualCFG::eckFalse,
  VirtualCFG::eckCaseLabel,
  VirtualCFG::eckDefault,
  VirtualCFG::eckDoConditionPassed,
  VirtualCFG::eckDoConditionFailed,
  VirtualCFG::eckForallIndicesInRange,
  VirtualCFG::eckForallIndicesNotInRange,
  VirtualCFG::eckComputedGotoCaseLabel,
  VirtualCFG::eckArithmeticIfLess,
  VirtualCFG::eckArithmeticIfEqual,
  VirtualCFG::eckArithmeticIfGreater,
  VirtualCFG::eckInterprocedural
}
 The conditions attached to edges are marked to determine which conditions trigger control to flow along that edge (as opposed to other edges out of the same source node). More...
 

Functions

SgStatementisSgStatement (SgNode *node)
 
const SgStatementisSgStatement (const SgNode *node)
 
SgExpressionisSgExpression (SgNode *node)
 
const SgExpressionisSgExpression (const SgNode *node)
 
SgInitializedNameisSgInitializedName (SgNode *node)
 
const SgInitializedNameisSgInitializedName (const SgNode *node)
 
CFGPath VirtualCFG::mergePaths (const CFGPath &hd, const CFGPath &tl)
 
CFGPath VirtualCFG::mergePathsReversed (const CFGPath &tl, const CFGPath &hd)
 
CFGNode VirtualCFG::cfgBeginningOfConstruct (SgNode *c)
 The first CFG node for a construct (before the construct starts to execute) More...
 
unsigned int VirtualCFG::cfgIndexForEndWrapper (SgNode *n)
 
CFGNode VirtualCFG::cfgEndOfConstruct (SgNode *c)
 The last CFG node for a construct (after the entire construct has finished executing). More...
 
CFGNode VirtualCFG::makeCfg (SgNode *start)
 Returns CFG node for just before start. More...
 
InterestingNode VirtualCFG::makeInterestingCfg (SgNode *start)
 
CFGNode VirtualCFG::getCFGTargetOfFortranLabelSymbol (SgLabelSymbol *sym)
 
CFGNode VirtualCFG::getCFGTargetOfFortranLabelRef (SgLabelRefExp *lRef)
 
template<class Node1T , class Node2T , class EdgeT >
void VirtualCFG::makeEdge (Node1T from, Node2T to, std::vector< EdgeT > &result)
 Utility function to make CFG Edges. More...
 
template<class NodeT1 , class NodeT2 , class EdgeT >
void makeEdge (NodeT1 from, NodeT2 to, std::vector< EdgeT > &result)
 Utility function to make CFG Edges. More...
 

Variables

int abcd
 
int VirtualCFG::efgh
 

Macro Definition Documentation

#define SGFUNCTIONCALLEXP_INTERPROCEDURAL_INDEX   2

Definition at line 337 of file virtualCFG.h.

#define SGCONSTRUCTORINITIALIZER_INTERPROCEDURAL_INDEX   1

Definition at line 338 of file virtualCFG.h.

#define SGFUNCTIONDEFINITION_INTERPROCEDURAL_INDEX   2

Definition at line 339 of file virtualCFG.h.

#define SGFUNCTIONCALLEXP_INTERPROCEDURAL_INDEX   2

Definition at line 337 of file virtualCFG.h.

#define SGCONSTRUCTORINITIALIZER_INTERPROCEDURAL_INDEX   1

Definition at line 338 of file virtualCFG.h.

#define SGFUNCTIONDEFINITION_INTERPROCEDURAL_INDEX   2

Definition at line 339 of file virtualCFG.h.

Function Documentation

SgStatement* isSgStatement ( SgNode node)
const SgStatement* isSgStatement ( const SgNode node)
SgExpression* isSgExpression ( SgNode node)
const SgExpression* isSgExpression ( const SgNode node)
SgInitializedName* isSgInitializedName ( SgNode node)
const SgInitializedName* isSgInitializedName ( const SgNode node)
template<class NodeT1 , class NodeT2 , class EdgeT >
void makeEdge ( NodeT1  from,
NodeT2  to,
std::vector< EdgeT > &  result 
)

Utility function to make CFG Edges.

Variable Documentation

int abcd