Author: Maciej Fijalkowski <fij...@gmail.com> Branch: optresult Changeset: r78284:0ec1faa7d196 Date: 2015-06-24 10:36 +0200 http://bitbucket.org/pypy/pypy/changeset/0ec1faa7d196/
Log: fix wrong use of check isinstance(x, AbstractResOp) diff --git a/rpython/jit/metainterp/optimizeopt/intbounds.py b/rpython/jit/metainterp/optimizeopt/intbounds.py --- a/rpython/jit/metainterp/optimizeopt/intbounds.py +++ b/rpython/jit/metainterp/optimizeopt/intbounds.py @@ -134,7 +134,7 @@ v1, v2 = v2, v1 # if both are constant, the pure optimization will deal with it if v2.is_constant() and not v1.is_constant(): - if isinstance(arg1, AbstractResOp): + if not self.optimizer.is_inputarg(arg1): if arg1.getopnum() == rop.INT_ADD: prod_arg1 = arg1.getarg(0) prod_arg2 = arg1.getarg(1) diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py b/rpython/jit/metainterp/optimizeopt/optimizer.py --- a/rpython/jit/metainterp/optimizeopt/optimizer.py +++ b/rpython/jit/metainterp/optimizeopt/optimizer.py @@ -328,6 +328,9 @@ def ensure_imported(self, value): pass + def is_inputarg(self, op): + return op in self.inparg_dict + def get_constant_box(self, box): box = self.get_box_replacement(box) if isinstance(box, Const): @@ -456,6 +459,9 @@ def propagate_all_forward(self, clear=True): if clear: self.clear_newoperations() + self.inparg_dict = {} + for op in self.loop.inputargs: + self.inparg_dict[op] = None for op in self.loop.operations: self._really_emitted_operation = None self.first_optimization.propagate_forward(op) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit