diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2016-10-17 12:48:20 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2016-11-04 16:45:46 +0100 |
| commit | abbc51905c2c392b259f43c681ed9617168add5e (patch) | |
| tree | cec3c008ded0d84084e4ab37505a53bb4cb30554 /miasm2/expression/simplifications.py | |
| parent | 89795337461e2a2eeae42324e023582b93067996 (diff) | |
| download | miasm-abbc51905c2c392b259f43c681ed9617168add5e.tar.gz miasm-abbc51905c2c392b259f43c681ed9617168add5e.zip | |
IR: is_simp in the simplifier class
Diffstat (limited to 'miasm2/expression/simplifications.py')
| -rw-r--r-- | miasm2/expression/simplifications.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/miasm2/expression/simplifications.py b/miasm2/expression/simplifications.py index cbffb219..069be197 100644 --- a/miasm2/expression/simplifications.py +++ b/miasm2/expression/simplifications.py @@ -48,6 +48,7 @@ class ExpressionSimplifier(object): def __init__(self): self.expr_simp_cb = {} + self.simplified_exprs = set() def enable_passes(self, passes): """Add passes from @passes @@ -80,7 +81,7 @@ class ExpressionSimplifier(object): @expression: Expr instance Return an Expr instance""" - if expression.is_simp: + if expression in self.simplified_exprs: return expression # Find a stable state @@ -92,10 +93,9 @@ class ExpressionSimplifier(object): # Launch recursivity expression = self.expr_simp_wrapper(e_new) - expression.is_simp = True - + self.simplified_exprs.add(expression) # Mark expression as simplified - e_new.is_simp = True + self.simplified_exprs.add(e_new) return e_new def expr_simp_wrapper(self, expression, callback=None): @@ -104,13 +104,13 @@ class ExpressionSimplifier(object): @manual_callback: If set, call this function instead of normal one Return an Expr instance""" - if expression.is_simp: + if expression in self.simplified_exprs: return expression if callback is None: callback = self.expr_simp - return expression.visit(callback, lambda e: not(e.is_simp)) + return expression.visit(callback, lambda e: e not in self.simplified_exprs) def __call__(self, expression, callback=None): "Wrapper on expr_simp_wrapper" |