Skip to content

legacy::PRE

Types

Name

Description

myControlFlowGraph

The whole CFG structure, including some external properties

simpleGraph

Graph structure for control flow graphs. Based loosely on BGL graph type.

ControlFlowGraph

Edge

EdgeInsertionPointMap

EdgeIter

EdgeTypeMap

Edges

InEdgeIter

NodeStatementsMap

OutEdgeIter

Vertex

VertexIter

Vertices

Functions

Name

Description

addEdgeInsertionPoints

Add information to each edge on where to insert statements on that edge. The insertion point structure is a pair of (SgNode*, bool), where the bool is true for inserting before the given node and false for inserting after it.

getFunctionDefinition

Get the function definition containing a given node

makeCfg

Make the control flow graph for a given node

partialRedundancyElimination

Do partial redundancy elimination on all functions within the scope n.

partialRedundancyEliminationFunction

Do partial redundancy for all expressions within a given function, whose definition is given in n.

partialRedundancyEliminationOne

Do partial redundancy elimination, looking for copies of one expression expr within the basic block root. A control flow graph for root must be provided in cfg, with a map from nodes to their statements in node_statements, a map from edges to their CFG edge types in edge_type, and a map from edges to their insertion points in edge_insertion_point. The algorithm used is that of Paleri, Srikant, and Shankar ("Partial redundancy elimination: a simple, pragmatic, and provably correct algorithm", Science of Computer Programming 48 (2003) 1‐‐20).

printCfgAsDot

Print out a CFG as a dot file

Created with MrDocs