Class PtrAliasAnalysis#

Inheritance Relationships#

Base Type#

Derived Type#

Class Documentation#

class PtrAliasAnalysis : public InterProcDataFlowAnalysis#

PtrAliasAnalysis computes Alias Information, which is used for Virtual Function Resolving.

Subclassed by VirtualFunctionAnalysis

Public Types

enum COLOR#

Enum used for Topological sorting.

Values:

enumerator WHITE#
enumerator GREY#
enumerator BLACK#
enum TRAVERSAL_TYPE#

Enum used for identifying traversal type.

Values:

enumerator TOPOLOGICAL#
enumerator REVERSE_TOPOLOGICAL#

Public Functions

PtrAliasAnalysis(SgProject *__project)#
~PtrAliasAnalysis()#
virtual void run()#

Function which actually performs the DataFlowAnalyis.

virtual void getFunctionDeclarations(std::vector<SgFunctionDeclaration*>&)#

Get the list of function declarations to perform interprocedural DataFlowAnalysis.

virtual bool runAndCheckIntraProcAnalysis(SgFunctionDeclaration*)#

Execute IntraProc Analysis and check whether something changed.

Protected Attributes

SgIncidenceDirectedGraph *callGraph#

The stored callGraph for internal processing.

std::unordered_map<SgFunctionDeclaration*, IntraProcAliasAnalysis*> intraAliases#

A map from SgFunctionDeclaration to IntraProcAliasAnalysis.

std::unordered_map<SgExpression*, std::vector<SgFunctionDeclaration*>> resolver#

A map which stores the function call resolve information.

ClassHierarchyWrapper *classHierarchy#

ClassHierarchy of the project.

CallGraphBuilder *cgBuilder#