1#include <featureTests.h>
2#ifdef ROSE_ENABLE_SOURCE_ANALYSIS
7#include "genericDataflowCommon.h"
9#include "VirtualCFGIterator.h"
10#include "DataflowCFG.h"
21 void initCFGUtils(
SgProject* project_arg);
30 bool computeTermsOfIfCondition_LTEQ(
SgExpression *expr,
varID &x,
bool& negX,
varID &y,
bool& negY,
long &c);
36 bool computeTermsOfIfCondition_EQ(
SgExpression *expr,
varID &x,
bool& negX,
varID &y,
bool& negY,
long &c);
50 findArrayAccesses(
SgNode* ast_node,
51 m_varID2varID2quad &wrIndex, m_varID2varID2quad &rdIndex,
52 m_varID2bool &rdFromExp, m_varID2bool &wrFromExp,
53 varIDSet arrays, m_varID2str vars2Name);
66 bool parseArrayAccess(
SgNode* ast_node,
67 m_varID2varID2quad& wrIndexSimp, varIDlist& wrIndexCpx,
68 m_varID2varID2quad& rdIndexSimp, varIDlist& rdIndexCpx,
69 m_varID2str vars2Name);
74 bool isAssignment(
SgNode* n);
82 void getAssignmentRHS(
SgNode* n, std::set<SgNode*>& rhs);
86 const short subtract=2;
95 bool parseAssignment(
SgNode* expr,
short& op,
varID &i,
varID &j,
bool& negJ,
varID &k,
bool& negK,
long &c);
144 std::string genUniqueName();
This class represents the notion of an expression. Expressions are derived from SgLocatedNodes,...
This class represents the concept of a function declaration statement.
This class represents the concept of a scope in C++ (e.g. global scope, fuction scope,...
This class represents the base class for all IR nodes within Sage III.
This class represents a source project, with a list of SgFile objects and global information about th...
A node in the control flow graph.
ROSE_DLL_API SgProject * getProject()
Get the current SgProject IR Node.