[pypy-commit] pypy optresult-unroll: progress
fijal
noreply at buildbot.pypy.org
Thu Sep 3 18:34:51 CEST 2015
Author: Maciej Fijalkowski <fijall at 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:
More information about the pypy-commit
mailing list