Exemplo n.º 1
0
 def from_adj_list(self, d, entry_point=0):
     """
     Build a CFGraph class from a dict of adjacency lists.
     """
     g = CFGraph()
     # Need to add all nodes before adding edges
     for node in d:
         g.add_node(node)
     for node, dests in d.items():
         for dest in dests:
             g.add_edge(node, dest)
     return g
Exemplo n.º 2
0
def compute_cfg_from_blocks(blocks):
    cfg = CFGraph()
    for k in blocks:
        cfg.add_node(k)

    for k, b in blocks.items():
        term = b.terminator
        for target in term.get_targets():
            cfg.add_edge(k, target)

    cfg.set_entry_point(min(blocks))
    cfg.process()
    return cfg
Exemplo n.º 3
0
 def from_adj_list(self, d, entry_point=0):
     """
     Build a CFGraph class from a dict of adjacency lists.
     """
     g = CFGraph()
     # Need to add all nodes before adding edges
     for node in d:
         g.add_node(node)
     for node, dests in d.items():
         for dest in dests:
             g.add_edge(node, dest)
     return g