LowUIRCFG Type
CFG where each node is an IR-level basic block. This is the main data
structure that we use to represent the control flow graph of a function.
This is essentially a wrapper class of `IDiGraph
Constructors
| Constructor |
Description
|
|
|
|
Creates an empty persistent CFG.
|
Instance members
| Instance member |
Description
|
Full Usage:
this.AddEdge
Parameters:
IVertex<LowUIRBasicBlock>
dst : IVertex<LowUIRBasicBlock>
label : CFGEdgeKind
|
Add an edge between the given source and destination vertices with a label.
|
Full Usage:
this.AddEdge
Parameters:
IVertex<LowUIRBasicBlock>
dst : IVertex<LowUIRBasicBlock>
|
Add an edge between the given source and destination vertices.
|
|
Add a root vertex to this CFG.
|
|
Add a vertex containing this BBL to this CFG, and return the added vertex.
|
|
Clone this CFG.
|
|
Get an array of all edges in this CFG.
|
|
Get an array of exit vertices in this CFG.
|
Full Usage:
this.FindEdge
Parameters:
IVertex<LowUIRBasicBlock>
dst : IVertex<LowUIRBasicBlock>
Returns: Edge<LowUIRBasicBlock, CFGEdgeKind>
|
Find an edge between the given source and destination vertices.
|
Full Usage:
this.FindVertex
Parameters:
IVertex<LowUIRBasicBlock> -> bool
Returns: IVertex<LowUIRBasicBlock>
|
Find a vertex that satisfies the given predicate function.
|
|
Find a vertex by its VertexID. This function raises an exception when there is no such a vertex.
|
Full Usage:
this.FoldEdge
Parameters:
'a -> Edge<LowUIRBasicBlock, CFGEdgeKind> -> 'a
acc : 'a
Returns: 'a
Type parameters: 'a |
Fold the edges of this CFG with the given function and accumulator.
|
Full Usage:
this.FoldVertex
Parameters:
'a -> IVertex<LowUIRBasicBlock> -> 'a
acc : 'a
Returns: 'a
Type parameters: 'a |
Fold the vertices of this CFG with the given function and accumulator.
|
Full Usage:
this.GetPredEdges
Parameters:
IVertex<LowUIRBasicBlock>
Returns: Edge<LowUIRBasicBlock, CFGEdgeKind>[]
|
Get the predecessor edges of the given vertex.
|
Full Usage:
this.GetPreds
Parameters:
IVertex<LowUIRBasicBlock>
Returns: IVertex<LowUIRBasicBlock>[]
|
Get the predecessors of the given vertex.
|
Full Usage:
this.GetSuccEdges
Parameters:
IVertex<LowUIRBasicBlock>
Returns: Edge<LowUIRBasicBlock, CFGEdgeKind>[]
|
Get the successor edges of the given vertex.
|
Full Usage:
this.GetSuccs
Parameters:
IVertex<LowUIRBasicBlock>
Returns: IVertex<LowUIRBasicBlock>[]
|
Get the successors of the given vertex.
|
|
|
|
Get the implementation type of this CFG.
|
Full Usage:
this.IsEmpty
Returns: bool
|
Is this empty? A CFG is empty when there is no vertex.
|
|
Iterate over the edges of this CFG with the given function.
|
|
Iterate over the vertices of this CFG with the given function.
|
|
Remove the given edge from this CFG.
|
Full Usage:
this.RemoveEdge
Parameters:
IVertex<LowUIRBasicBlock>
dst : IVertex<LowUIRBasicBlock>
|
Remove an edge between the given source and destination vertices.
|
|
Remove the given vertex from this CFG.
|
Full Usage:
this.Reverse
Parameters:
IEnumerable<IVertex<LowUIRBasicBlock>>
Returns: LowUIRCFG
|
Reverse the direction of the edges in this CFG while making the given vertices as root vertices.
|
|
Get the root vertices of this CFG.
|
|
Set root vertices of this CFG.
|
|
Get exactly one root vertex of this CFG. If there are multiple root vertices, this will raise an exception.
|
Full Usage:
this.Size
Returns: int
|
Number of vertices.
|
Full Usage:
this.TryFindEdge
Parameters:
IVertex<LowUIRBasicBlock>
dst : IVertex<LowUIRBasicBlock>
Returns: Edge<LowUIRBasicBlock, CFGEdgeKind> option
|
Find an edge between the given source and destination vertices. This function returns an Option type. If there is no such an edge, it returns None.
|
Full Usage:
this.TryFindVertex
Parameters:
IVertex<LowUIRBasicBlock> -> bool
Returns: IVertex<LowUIRBasicBlock> option
|
Find a vertex that satisfies the given predicate function. This function returns an Option type. If there is no such a vertex, it returns None.
|
|
Find a vertex by its VertexID. This function returns an Option type. If there is no such a vertex, it returns None.
|
|
Get an array of unreachable vertices in this CFG.
|
|
Get an array of all vertices in this CFG.
|
B2R2