diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2018-02-09 10:16:58 +0100 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2018-02-09 10:55:39 +0100 |
| commit | c63ae8e10af699f2cd7bacd14a39112f28cf71ab (patch) | |
| tree | 32cb299fb122719f3679d38a5821d90a853cb179 /miasm2/analysis/data_flow.py | |
| parent | 4b257d2d82c6323c6bc521017d0649b8cc7b3747 (diff) | |
| download | miasm-c63ae8e10af699f2cd7bacd14a39112f28cf71ab.tar.gz miasm-c63ae8e10af699f2cd7bacd14a39112f28cf71ab.zip | |
IRBlock: getitem/len on assignblks
Diffstat (limited to '')
| -rw-r--r-- | miasm2/analysis/data_flow.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/miasm2/analysis/data_flow.py b/miasm2/analysis/data_flow.py index da79cf75..3a789cc3 100644 --- a/miasm2/analysis/data_flow.py +++ b/miasm2/analysis/data_flow.py @@ -59,7 +59,7 @@ class ReachingDefinitions(dict): predecessor_state = {} for pred_lbl in self.ir_a.graph.predecessors(block.label): pred = self.ir_a.blocks[pred_lbl] - for lval, definitions in self.get_definitions(pred_lbl, len(pred.assignblks)).iteritems(): + for lval, definitions in self.get_definitions(pred_lbl, len(pred)).iteritems(): predecessor_state.setdefault(lval, set()).update(definitions) modified = self.get((block.label, 0)) != predecessor_state @@ -67,7 +67,7 @@ class ReachingDefinitions(dict): return False self[(block.label, 0)] = predecessor_state - for index in xrange(len(block.assignblks)): + for index in xrange(len(block)): modified |= self.process_instruction(block, index) return modified @@ -79,7 +79,7 @@ class ReachingDefinitions(dict): (@block, @assignblk_index + 1). """ - instr = block.assignblks[assignblk_index] + instr = block[assignblk_index] defs = self.get_definitions(block.label, assignblk_index).copy() for lval in instr: defs.update({lval: set([(block.label, assignblk_index)])}) @@ -183,7 +183,7 @@ class DiGraphDefUse(DiGraph): attr={'align': 'center', 'colspan': 2, 'bgcolor': 'grey'}) - src = self._blocks[lbl].assignblks[index][reg] + src = self._blocks[lbl][index][reg] line = "%s = %s" % (reg, src) yield self.DotCellDescription(text=line, attr={}) yield self.DotCellDescription(text="", attr={}) @@ -215,7 +215,7 @@ def dead_simp_useful_instrs(defuse, reaching_defs): # Block has a nonexistant successor or is a leaf if keep_all_definitions or (len(successors) == 0): valid_definitions = reaching_defs.get_definitions(block_lbl, - len(block.assignblks)) + len(block)) for lval, definitions in valid_definitions.iteritems(): if (lval in ir_a.get_out_regs(block) or keep_all_definitions): |