Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r79126:a324ca2df937
Date: 2015-08-21 20:11 +0200
http://bitbucket.org/pypy/pypy/changeset/a324ca2df937/
Log: pass more tests, push push push
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py
b/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py
@@ -500,28 +500,29 @@
self.guards(info1, info2, InputArgRef(), value1, expected, [box])
def test_generate_guards_on_virtual_fields_matches_instance(self):
- innervalue1 = PtrOptValue(self.nodebox)
- constclassbox = self.cpu.ts.cls_of_box(self.nodebox)
- innervalue1.make_constant_class(None, constclassbox)
- innerinfo1 = NotVirtualStateInfo(innervalue1)
+ classbox = self.cpu.ts.cls_of_box(InputArgRef(self.nodeaddr))
+ innervalue1 = info.InstancePtrInfo(classbox)
+ innerinfo1 = NotVirtualStateInfo(self.cpu, 'r', innervalue1)
innerinfo1.position = 1
- innerinfo2 = NotVirtualStateInfo(PtrOptValue(self.nodebox))
+ innerinfo2 = NotVirtualStateInfo(self.cpu, 'r', None)
innerinfo2.position = 1
- info1 = VirtualStateInfo(ConstInt(42), [1])
+ info1 = VirtualStateInfo(ConstInt(42), [self.nextdescr])
info1.fieldstate = [innerinfo1]
- info2 = VirtualStateInfo(ConstInt(42), [1])
+ info2 = VirtualStateInfo(ConstInt(42), [self.nextdescr])
info2.fieldstate = [innerinfo2]
- value1 = VirtualValue(self.cpu, constclassbox, self.nodebox)
- value1._fields = {1: PtrOptValue(self.nodebox)}
+ value1 = info.InstancePtrInfo(classbox, self.nodesize)
+ nodebox = InputArgRef(self.nodeaddr)
+ value1._fields = [None] * (self.nextdescr.get_index() + 1)
+ value1._fields[self.nextdescr.get_index()] = nodebox
expected = """
[p0]
guard_nonnull_class(p0, ConstClass(node_vtable)) []
"""
- self.guards(info1, info2, value1, expected, [self.nodebox])
+ self.guards(info1, info2, nodebox, value1, expected, [nodebox])
def test_generate_guards_on_virtual_fields_matches_struct(self):
innervalue1 = PtrOptValue(self.nodebox)
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
@@ -119,9 +119,7 @@
assert len(self.fielddescrs) == len(self.fieldstate)
assert len(other.fielddescrs) == len(other.fieldstate)
if box is not None:
- yyy
- assert isinstance(value, virtualize.AbstractVirtualStructValue)
- assert value.is_virtual()
+ assert opinfo.is_virtual()
if len(self.fielddescrs) != len(other.fielddescrs):
raise VirtualStatesCantMatch("field descrs don't match")
@@ -132,8 +130,7 @@
if box is not None:
fieldbox = opinfo._fields[self.fielddescrs[i].get_index()]
# must be there
- xxx
- fieldinfo = fieldbox.get_forwarded()
+ fieldinfo = get_forwarded(fieldbox)
else:
fieldbox = None
fieldinfo = None
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit