Single-entry single-exit

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In graph theory, a single-entry single-exit (SESE) region in a given graph is an ordered edge pair (ab) of distinct control flow edges a and b where:

  1. a dominates b
  2. b postdominates a
  3. Every cycle containing a also contains b and vice versa.

where a node x is said to dominate node y in a directed graph if every path from start to y includes x. A node x is said to postdominate a node y if every path from y to end includes x.

So, a and b refer to the entry and exit edge, respectively. The first condition ensures that every path from start into the region passes through the region’s entry edge, a. The second condition ensures that every path from inside the region to end passes through the region’s exit edge, b. The first two conditions are necessary but not enough to characterize SESE regions: since backedges do not alter the dominance or postdominance relationships, the first two conditions alone do not prohibit backedges entering or exiting the region. The third condition encodes two constraints: every path from inside the region to a point 'above' a passed through b, and every path from a point 'below' b to a point inside the region passes through a.[1]