Provides dominance predicates for control-flow nodes.
These variations of the dominance relation are used for computing SSA
form. Formally, a node d
dominates a node n
if all paths from the
function entry point to n
go through d
; this applies within a function
and only for nodes reachable from the entry point. Unreachable nodes are not
part the dominance relation.
Import path
import semmle.code.cpp.controlflow.Dominance
Imports
cpp | Provides classes and predicates for working with C/C++ code.
|
Predicates
bbDominates | Holds if dominator is a dominator of node in the control-flow graph of basic blocks. This is reflexive.
|
bbIDominates | Holds if dominator is an immediate dominator of node in the control-flow graph of basic blocks.
|
bbIPostDominates | Holds if postDominator is an immediate post-dominator of node in the control-flow graph of basic blocks.
|
bbPostDominates | Holds if postDominator is a post-dominator of node in the control-flow graph of basic blocks. This is reflexive.
|
bbStrictlyDominates | Holds if dominator is a strict dominator of node in the control-flow graph of basic blocks. Being strict means that dominator != node .
|
bbStrictlyPostDominates | Holds if postDominator is a strict post-dominator of node in the control-flow graph of basic blocks. Being strict means that postDominator != node .
|
dominates | Holds if dominator is a dominator of node in the control-flow graph. This is reflexive.
|
functionEntry | Holds if entry is the entry point of a function.
|
functionExit | Holds if exit is the exit node of a function.
|
iDominates | Holds if dominator is an immediate dominator of node in the control-flow graph.
|
iPostDominates | Holds if postDominator is an immediate post-dominator of node in the control-flow graph.
|
postDominates | Holds if postDominator is a post-dominator of node in the control-flow graph. This is reflexive.
|
strictlyDominates | Holds if dominator is a strict dominator of node in the control-flow graph. Being strict means that dominator != node .
|
strictlyPostDominates | Holds if postDominator is a strict post-dominator of node in the control-flow graph. Being strict means that postDominator != node .
|