diff options
| author | Camille Mougey <commial@gmail.com> | 2018-07-05 17:52:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-05 17:52:12 +0200 |
| commit | a3961b92c47a9cc47510601b57267822fcbdcbdf (patch) | |
| tree | ac39a9859983baff15d52533829d95ffa760f633 /example/expression/constant_propagation.py | |
| parent | f5fd096d35a9b3811097c40f553c90d3036cc035 (diff) | |
| parent | 045182c94d6bb1c9417b612d88fd469e0f87872f (diff) | |
| download | miasm-a3961b92c47a9cc47510601b57267822fcbdcbdf.tar.gz miasm-a3961b92c47a9cc47510601b57267822fcbdcbdf.zip | |
Merge pull request #784 from serpilliere/split_ir_graph
Split ir graph
Diffstat (limited to 'example/expression/constant_propagation.py')
| -rw-r--r-- | example/expression/constant_propagation.py | 19 |
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()) |