(graph, domtree)
return df
Compute a dominance frontier based on the given post-dominator tree.

    This implementation is based on figure 2 of paper An Efficient Method of Computing Static Single Assignment
    Form by Ron Cytron, etc.

    :param graph:   The graph where we want to compute the dominance frontier.
    :param domtree: The dominator tree
    :returns:       A dict of dominance frontier
Compute a dominance frontier based on the given post-dominator tree.
Compute a dominance frontier based on the given post - dominator tree .
def compute_dominance_frontier(graph, domtree):
    """
    Compute a dominance frontier based on the given post-dominator tree.

    This implementation is based on figure 2 of paper An Efficient Method of Computing Static Single Assignment
    Form by Ron Cytron, etc.

    :param graph:   The graph where we want to compute the dominance frontier.
    :param domtree: The dominator tree
    :returns:       A dict of dominance frontier
    """

    df = {}

    # Perform a post-order search on the dominator tree
    for x in networkx.dfs_postorder_nodes(domtree):

        if x not in graph:
            # Skip nodes that are not in the graph
            continue

        df[x] = set()

        # local set
        for y in graph.successors(x):
            if x not in domtree.predecessors(y):
                df[x].add(y)

        # up set
        if x is None:
            continue

        for z in domtree.successors(x):
            if z is x:
                continue
            if z not in df:
                continue
            for y in df[z]:
                if x not in list(domtree.predecessors(y)):
                    df[x].add(y)

    return df
def compute_dominance_frontier ( graph , domtree ) : df = { } # Perform a post-order search on the dominator tree for x in networkx . dfs_postorder_nodes ( domtree ) : if x not in graph : # Skip nodes that are not in the graph continue df [ x ] = set ( ) # local set for y in graph . successors ( x ) : if x not in domtree . predecessors ( y ) : df [ x ] . add ( y ) # up set if x is None : continue for z in domtree . successors ( x ) : if z is x : continue if z not in df : continue for y in df [ z ] : if x not in list ( domtree . predecessors ( y ) ) : df [ x ] . add ( y ) return df