diff options
| author | Camille Mougey <commial@gmail.com> | 2017-06-06 12:24:31 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-06-06 12:24:31 +0200 |
| commit | 443a811aa92a31d3c2ae89937c5abb497bcc30ff (patch) | |
| tree | 70937e30d5475f1c0b137ffc343e312323c50970 /miasm2/analysis/data_flow.py | |
| parent | b772f2d9c7aceb7d1ca87cdefd708d4f65d71623 (diff) | |
| parent | ded504718e83ffcc63ef42cc27159ef998ed211b (diff) | |
| download | miasm-443a811aa92a31d3c2ae89937c5abb497bcc30ff.tar.gz miasm-443a811aa92a31d3c2ae89937c5abb497bcc30ff.zip | |
Merge pull request #522 from serpilliere/ir_ro
Ir ro
Diffstat (limited to 'miasm2/analysis/data_flow.py')
| -rw-r--r-- | miasm2/analysis/data_flow.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/miasm2/analysis/data_flow.py b/miasm2/analysis/data_flow.py index 892a01c3..67768264 100644 --- a/miasm2/analysis/data_flow.py +++ b/miasm2/analysis/data_flow.py @@ -2,7 +2,7 @@ from collections import namedtuple from miasm2.core.graph import DiGraph -from miasm2.ir.ir import AssignBlock +from miasm2.ir.ir import AssignBlock, IRBlock class ReachingDefinitions(dict): """ @@ -248,11 +248,13 @@ def dead_simp(ir_a): defuse = DiGraphDefUse(reaching_defs, deref_mem=True) useful = set(dead_simp_useful_instrs(defuse, reaching_defs)) for block in ir_a.blocks.itervalues(): + irs = [] for idx, assignblk in enumerate(block.irs): new_assignblk = dict(assignblk) for lval in assignblk: if InstrNode(block.label, idx, lval) not in useful: del new_assignblk[lval] modified = True - block.irs[idx] = AssignBlock(new_assignblk, assignblk.instr) + irs.append(AssignBlock(new_assignblk, assignblk.instr)) + ir_a.blocks[block.label] = IRBlock(block.label, irs) return modified |