about summary refs log tree commit diff stats
path: root/example
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2019-02-01 07:41:28 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2019-02-12 08:07:18 +0100
commit00ba934bac0263bcf9a38a3c5635684674a24441 (patch)
treebb7f001ce2f370fbb13a3baac1eb97cf3e6e68a7 /example
parent7e56aefcda654586136278db3886be640c9ce800 (diff)
downloadfocaccia-miasm-00ba934bac0263bcf9a38a3c5635684674a24441.tar.gz
focaccia-miasm-00ba934bac0263bcf9a38a3c5635684674a24441.zip
IR: del unused edges during IR simplifications
Diffstat (limited to 'example')
-rw-r--r--example/disasm/full.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/example/disasm/full.py b/example/disasm/full.py
index d159e8c6..42d50216 100644
--- a/example/disasm/full.py
+++ b/example/disasm/full.py
@@ -8,9 +8,12 @@ from miasm2.core.interval import interval
 from miasm2.analysis.machine import Machine
 from miasm2.analysis.data_flow import dead_simp, DiGraphDefUse, \
     ReachingDefinitions, merge_blocks, remove_empty_assignblks, \
-    PropagateExpr, replace_stack_vars, load_from_int
+    PropagateExpr, replace_stack_vars, load_from_int, \
+    del_unused_edges
 from miasm2.expression.simplifications import expr_simp
-from miasm2.analysis.ssa import SSADiGraph, UnSSADiGraph, DiGraphLivenessSSA
+from miasm2.analysis.ssa import SSADiGraph
+from miasm2.analysis.outofssa import UnSSADiGraph
+from miasm2.analysis.data_flow import DiGraphLivenessSSA
 from miasm2.ir.ir import AssignBlock, IRBlock
 
 
@@ -395,6 +398,9 @@ if args.propagexpr:
                 if args.verbose > 3:
                     open('tmp_after_%d.dot' % index, 'w').write(ircfg_a.dot())
                 simp_modified |= remove_empty_assignblks(ircfg_a)
+                simp_modified |= del_unused_edges(ircfg_a, heads)
+                simp_modified |= merge_blocks(ircfg_a, heads)
+
                 if args.loadint:
                     simp_modified |= load_from_int(ircfg_a, bs, is_addr_ro_variable)
                 modified |= simp_modified