diff options
Diffstat (limited to 'miasm2/core/graph.py')
| -rw-r--r-- | miasm2/core/graph.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/miasm2/core/graph.py b/miasm2/core/graph.py index 47be1864..c647ede8 100644 --- a/miasm2/core/graph.py +++ b/miasm2/core/graph.py @@ -300,3 +300,15 @@ shape = "box" return self._walk_generic_dominator(node, postdominators, self.successors_iter) + + def compute_immediate_dominators(self, head): + """Compute the immediate dominators of the graph""" + dominators = self.compute_dominators(head) + idoms = {} + + for n in dominators.keys(): + for p in self.reachable_parents(n): + if p in dominators[n] and n != p: + idoms[n] = p + break + return idoms |