[pypy-commit] pypy value-classes: Get simple test working
sbauman
pypy.commits at gmail.com
Tue Sep 27 14:13:27 EDT 2016
Author: Spenser Bauman <sabauma at gmail.com>
Branch: value-classes
Changeset: r87419:afd1c22c477e
Date: 2016-09-27 14:12 -0400
http://bitbucket.org/pypy/pypy/changeset/afd1c22c477e/
Log: Get simple test working
diff --git a/rpython/jit/metainterp/optimizeopt/unroll.py b/rpython/jit/metainterp/optimizeopt/unroll.py
--- a/rpython/jit/metainterp/optimizeopt/unroll.py
+++ b/rpython/jit/metainterp/optimizeopt/unroll.py
@@ -337,7 +337,7 @@
try:
args, virtuals = target_virtual_state.make_inputargs_and_virtuals(
args, self.optimizer, force_boxes=force_boxes)
- except VirtualStatesCantMatch as e:
+ except VirtualStatesCantMatch:
assert force_boxes
virtual_state = self.get_virtual_state(args)
continue
diff --git a/rpython/jit/metainterp/optimizeopt/virtualize.py b/rpython/jit/metainterp/optimizeopt/virtualize.py
--- a/rpython/jit/metainterp/optimizeopt/virtualize.py
+++ b/rpython/jit/metainterp/optimizeopt/virtualize.py
@@ -15,7 +15,7 @@
_last_guard_not_forced_2 = None
def setup(self):
- self.optimizer.optheap = self
+ self.optimizer.optvirtualize = self
def make_virtual(self, known_class, source_op, descr):
opinfo = info.InstancePtrInfo(descr, known_class, is_virtual=True)
diff --git a/rpython/jit/metainterp/optimizeopt/virtualstate.py b/rpython/jit/metainterp/optimizeopt/virtualstate.py
--- a/rpython/jit/metainterp/optimizeopt/virtualstate.py
+++ b/rpython/jit/metainterp/optimizeopt/virtualstate.py
@@ -222,14 +222,12 @@
self, boxes, box, optimizer, force_boxes)
optvirtualize = optimizer.optimizer.optvirtualize
- if optvirtualize is None:
- raise VirtualStatesCantMatch()
-
+ assert optvirtualize is not None
assert isinstance(info, AbstractStructPtrInfo)
newop = optvirtualize.make_virtual(self.known_class, box, self.typedescr)
newop._fields = info._fields[:]
- for i in range(min(len(self.fielddescrs, len(info._fields)))):
+ for i in range(min(len(self.fielddescrs), len(info._fields))):
state = self.fieldstate[i]
if state is None:
continue
@@ -250,7 +248,7 @@
if not known_class.is_value_class():
raise VirtualStatesCantMatch("different kinds of structs")
- raise VirtualStatesCantMatch("different kinds of structs")
+ # raise VirtualStatesCantMatch("different kinds of structs")
# TODO: Probably should rename state.extra_guards to extra_ops
extra_guards = state.extra_guards
cpu = state.cpu
@@ -260,7 +258,7 @@
if other.level == LEVEL_UNKNOWN:
op = ResOperation(rop.GUARD_NONNULL_CLASS, [box, self.known_class])
extra_guards.append(op)
- elif other.level == LEVEL_NONULL:
+ elif other.level == LEVEL_NONNULL:
op = ResOperation(rop.GUARD_CLASS, [box, self.known_class])
extra_guards.append(op)
elif other.level == LEVEL_KNOWNCLASS:
More information about the pypy-commit
mailing list