about summary refs log tree commit diff stats
path: root/example/expression/constant_propagation.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2018-06-22 19:49:09 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2018-07-05 16:14:26 +0200
commit195c688da01add6d4d964addfe7e34bea78bdb03 (patch)
tree80b346193da5609d19cdfc389ea84ad66399fa67 /example/expression/constant_propagation.py
parent3e86fb7046eef0adef023207cb4875174b26beea (diff)
downloadfocaccia-miasm-195c688da01add6d4d964addfe7e34bea78bdb03.tar.gz
focaccia-miasm-195c688da01add6d4d964addfe7e34bea78bdb03.zip
IR: gen ircfg from ir_arch
Diffstat (limited to 'example/expression/constant_propagation.py')
-rw-r--r--example/expression/constant_propagation.py19
1 files changed, 8 insertions, 11 deletions
diff --git a/example/expression/constant_propagation.py b/example/expression/constant_propagation.py
index b39bcafd..d9c5fe65 100644
--- a/example/expression/constant_propagation.py
+++ b/example/expression/constant_propagation.py
@@ -31,24 +31,21 @@ mdis = dis_engine(cont.bin_stream)
 ir_arch = ira(mdis.loc_db)
 addr = int(args.address, 0)
 
-
 asmcfg = mdis.dis_multiblock(addr)
-for block in asmcfg.blocks:
-    ir_arch.add_block(block)
-
+ircfg = ir_arch.new_ircfg_from_asmcfg(asmcfg)
 
 init_infos = ir_arch.arch.regs.regs_init
-cst_propag_link = propagate_cst_expr(ir_arch, addr, init_infos)
+cst_propag_link = propagate_cst_expr(ir_arch, ircfg, addr, init_infos)
 
 if args.simplify:
-    ir_arch.simplify(expr_simp)
+    ircfg.simplify(expr_simp)
     modified = True
     while modified:
         modified = False
-        modified |= dead_simp(ir_arch)
-        modified |= ir_arch.remove_empty_assignblks()
-        modified |= ir_arch.remove_jmp_blocks()
-        modified |= ir_arch.merge_blocks()
+        modified |= dead_simp(ir_arch, ircfg)
+        modified |= ircfg.remove_empty_assignblks()
+        modified |= ircfg.remove_jmp_blocks()
+        modified |= ircfg.merge_blocks()
 
 
-open("%s.propag.dot" % args.filename, 'w').write(ir_arch.graph.dot())
+open("%s.propag.dot" % args.filename, 'w').write(ircfg.dot())