Author: Maciej Fijalkowski <fij...@gmail.com> Branch: optresult-unroll Changeset: r79392:80aff6489027 Date: 2015-09-03 18:17 +0200 http://bitbucket.org/pypy/pypy/changeset/80aff6489027/
Log: progress diff --git a/rpython/jit/metainterp/optimizeopt/info.py b/rpython/jit/metainterp/optimizeopt/info.py --- a/rpython/jit/metainterp/optimizeopt/info.py +++ b/rpython/jit/metainterp/optimizeopt/info.py @@ -289,9 +289,17 @@ def make_guards(self, op, short): if self._known_class is not None: - op = ResOperation(rop.GUARD_NONNULL_CLASS, [op, self._known_class], - None) - short.append(op) + short.extend([ + ResOperation(rop.GUARD_NONNULL, [op], None), + ResOperation(rop.GUARD_IS_OBJECT, [op], None), + ResOperation(rop.GUARD_CLASS, [op, self._known_class], None) + ]) + elif self.descr is not None: + short.extend([ + ResOperation(rop.GUARD_NONNULL, [op], None), + ResOperation(rop.GUARD_IS_OBJECT, [op], None), + xx + ]) else: AbstractStructPtrInfo.make_guards(self, op, short) @@ -300,6 +308,9 @@ self.descr = descr self._is_virtual = is_virtual + def make_guards(self, op, short): + xxx + @specialize.argtype(1) def visitor_dispatch_virtual_type(self, visitor): fielddescrs = self.descr.get_all_fielddescrs() 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 @@ -94,7 +94,7 @@ last_guard_pos = opinfo.get_last_guard_pos() else: last_guard_pos = -1 - opinfo = info.InstancePtrInfo(class_const) + opinfo = info.InstancePtrInfo(None, class_const) opinfo.last_guard_pos = last_guard_pos op.set_forwarded(opinfo) if update_last_guard: _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit