ROSE
0.9.6a
|
PtrAliasAnalysis computes Alias Information, which is used for Virtual Function Resolving. More...
#include <PtrAliasAnalysis.h>
Public Types | |
enum | COLOR { WHITE =0, GREY, BLACK } |
Enum used for Topological sorting. More... | |
enum | TRAVERSAL_TYPE { TOPOLOGICAL =0, REVERSE_TOPOLOGICAL } |
Enum used for identifying traversal type. More... | |
Public Member Functions | |
PtrAliasAnalysis (SgProject *__project) | |
~PtrAliasAnalysis () | |
void | run () |
Function which actually performs the DataFlowAnalyis. More... | |
void | getFunctionDeclarations (std::vector< SgFunctionDeclaration * > &) |
Get the list of function declarations to perform interprocedural DataFlowAnalysis. More... | |
bool | runAndCheckIntraProcAnalysis (SgFunctionDeclaration *) |
Execute IntraProc Analysis and check whether something changed. More... | |
Public Member Functions inherited from InterProcDataFlowAnalysis | |
InterProcDataFlowAnalysis (SgProject *_project) | |
Protected Attributes | |
SgIncidenceDirectedGraph * | callGraph |
The stored callGraph for internal processing. More... | |
boost::unordered_map < SgFunctionDeclaration *, IntraProcAliasAnalysis * > | intraAliases |
A map from SgFunctionDeclaration to IntraProcAliasAnalysis. More... | |
boost::unordered_map < SgExpression *, std::vector < SgFunctionDeclaration * > > | resolver |
A map which stores the function call resolve information. More... | |
ClassHierarchyWrapper * | classHierarchy |
ClassHierarchy of the project. More... | |
CallGraphBuilder * | cgBuilder |
Protected Attributes inherited from InterProcDataFlowAnalysis | |
SgProject * | project |
Stored the Project Object. More... | |
Private Member Functions | |
void | SortCallGraphRecursive (SgFunctionDeclaration *targetFunction, SgIncidenceDirectedGraph *callGraph, boost::unordered_map< SgFunctionDeclaration *, SgGraphNode * > &graphNodeToFunction, boost::unordered_map< SgGraphNode *, PtrAliasAnalysis::COLOR > &colors, std::vector< SgFunctionDeclaration * > &processingOrder, PtrAliasAnalysis::TRAVERSAL_TYPE order) |
void | SortCallGraphNodes (SgFunctionDeclaration *targetFunction, SgIncidenceDirectedGraph *callGraph, boost::unordered_map< SgFunctionDeclaration *, SgGraphNode * > &graphNodeToFunction, std::vector< SgFunctionDeclaration * > &processingOrder, PtrAliasAnalysis::TRAVERSAL_TYPE order) |
void | computeCallGraphNodes (SgFunctionDeclaration *targetFunction, SgIncidenceDirectedGraph *callGraph, std::vector< SgFunctionDeclaration * > &processingOrder, PtrAliasAnalysis::TRAVERSAL_TYPE order) |
Private Attributes | |
TRAVERSAL_TYPE | order |
PtrAliasAnalysis computes Alias Information, which is used for Virtual Function Resolving.
Definition at line 13 of file PtrAliasAnalysis.h.
Enum used for Topological sorting.
Enumerator | |
---|---|
WHITE | |
GREY | |
BLACK |
Definition at line 31 of file PtrAliasAnalysis.h.
Enum used for identifying traversal type.
Enumerator | |
---|---|
TOPOLOGICAL | |
REVERSE_TOPOLOGICAL |
Definition at line 33 of file PtrAliasAnalysis.h.
PtrAliasAnalysis::PtrAliasAnalysis | ( | SgProject * | __project) |
PtrAliasAnalysis::~PtrAliasAnalysis | ( | ) |
|
virtual |
Function which actually performs the DataFlowAnalyis.
Reimplemented from InterProcDataFlowAnalysis.
Reimplemented in VirtualFunctionAnalysis.
|
virtual |
Get the list of function declarations to perform interprocedural DataFlowAnalysis.
Implements InterProcDataFlowAnalysis.
|
virtual |
Execute IntraProc Analysis and check whether something changed.
Implements InterProcDataFlowAnalysis.
|
private |
|
private |
|
private |
|
protected |
The stored callGraph for internal processing.
Definition at line 17 of file PtrAliasAnalysis.h.
|
protected |
A map from SgFunctionDeclaration to IntraProcAliasAnalysis.
Definition at line 20 of file PtrAliasAnalysis.h.
|
protected |
A map which stores the function call resolve information.
Definition at line 23 of file PtrAliasAnalysis.h.
|
protected |
ClassHierarchy of the project.
Definition at line 26 of file PtrAliasAnalysis.h.
|
protected |
Definition at line 28 of file PtrAliasAnalysis.h.
|
private |
Definition at line 57 of file PtrAliasAnalysis.h.