[pypy-commit] pypy optresult-unroll: fix a bunch of tests
fijal
noreply at buildbot.pypy.org
Tue Jul 7 11:44:40 CEST 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult-unroll
Changeset: r78484:37dac6d48e99
Date: 2015-07-07 11:44 +0200
http://bitbucket.org/pypy/pypy/changeset/37dac6d48e99/
Log: fix a bunch of tests
diff --git a/rpython/jit/metainterp/optimizeopt/heap.py b/rpython/jit/metainterp/optimizeopt/heap.py
--- a/rpython/jit/metainterp/optimizeopt/heap.py
+++ b/rpython/jit/metainterp/optimizeopt/heap.py
@@ -203,6 +203,7 @@
self.next_optimization.propagate_forward(postponed_op)
def produce_potential_short_preamble_ops(self, sb):
+ return
descrkeys = self.cached_fields.keys()
if not we_are_translated():
# XXX Pure operation of boxes that are cached in several places will
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
@@ -325,6 +325,8 @@
self._newoperations = []
def make_equal_to(self, op, newop):
+ if op is newop:
+ return
opinfo = op.get_forwarded()
if opinfo is not None:
assert isinstance(opinfo, info.AbstractInfo)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -530,7 +530,7 @@
def test_ooisnull_oononnull_via_virtual(self):
ops = """
[p0]
- pv = new_with_vtable(ConstClass(node_vtable))
+ pv = new_with_vtable(descr=nodesize)
setfield_gc(pv, p0, descr=valuedescr)
guard_nonnull(p0) []
p1 = getfield_gc_r(pv, descr=valuedescr)
@@ -775,7 +775,7 @@
[i1, p2, p3]
i3 = getfield_gc_i(p3, descr=valuedescr)
escape_n(i3)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i1, descr=valuedescr)
jump(i1, p1, p2)
"""
@@ -789,7 +789,7 @@
[i1, p2]
i3 = getfield_gc_i(p2, descr=valuedescr)
escape_n(i3)
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
setfield_gc(p3, i1, descr=valuedescr)
jump(i1, p3)
"""
@@ -801,7 +801,7 @@
[i1, p2, p3]
i3 = getfield_gc_i(p3, descr=valuedescr)
escape_n(i3)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i1, descr=valuedescr)
p1sub = new_with_vtable(ConstClass(node_vtable2))
setfield_gc(p1sub, i1, descr=valuedescr)
@@ -820,7 +820,7 @@
[i1, p2]
i3 = getfield_gc_i(p2, descr=valuedescr)
escape_n(i3)
- p4 = new_with_vtable(ConstClass(node_vtable))
+ p4 = new_with_vtable(descr=nodesize)
p1sub = new_with_vtable(ConstClass(node_vtable2))
setfield_gc(p1sub, i1, descr=valuedescr)
setfield_gc(p4, i1, descr=valuedescr)
@@ -835,7 +835,7 @@
p3sub = getfield_gc_r(p3, descr=nextdescr)
i3 = getfield_gc_i(p3sub, descr=valuedescr)
escape_n(i3)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
p2sub = new_with_vtable(ConstClass(node_vtable2))
setfield_gc(p2sub, i1, descr=valuedescr)
setfield_gc(p2, p2sub, descr=nextdescr)
@@ -857,7 +857,7 @@
[i1, p2, p2sub]
i3 = getfield_gc_i(p2sub, descr=valuedescr)
escape_n(i3)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
p3sub = new_with_vtable(ConstClass(node_vtable2))
setfield_gc(p3sub, i1, descr=valuedescr)
setfield_gc(p1, p3sub, descr=nextdescr)
@@ -873,7 +873,7 @@
i2b = int_is_true(i2)
guard_true(i2b) []
setfield_gc(p2, i2, descr=nextdescr)
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
jump(p2, p3)
"""
preamble = """
@@ -890,7 +890,7 @@
i2 = int_sub(i1, 1)
i2b = int_is_true(i2)
guard_true(i2b) []
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
setfield_gc(p3, i2, descr=nextdescr)
jump(p3, i2)
"""
@@ -981,7 +981,7 @@
[i, p0]
i0 = getfield_gc_i(p0, descr=valuedescr)
i1 = int_add(i0, i)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i1, descr=valuedescr)
jump(i, p1)
"""
@@ -1003,7 +1003,7 @@
[f, p0]
f0 = getfield_gc_f(p0, descr=floatdescr)
f1 = float_add(f0, f)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, f1, descr=floatdescr)
jump(f, p1)
"""
@@ -1073,7 +1073,7 @@
[p0]
i0 = getfield_gc_i(p0, descr=valuedescr)
guard_value(i0, 0) []
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
# the field 'value' has its default value of 0
jump(p1)
"""
@@ -1092,7 +1092,7 @@
def test_virtual_3(self):
ops = """
[i]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i, descr=valuedescr)
i0 = getfield_gc_i(p1, descr=valuedescr)
i1 = int_add(i0, 1)
@@ -1112,7 +1112,7 @@
i1 = getfield_gc_i(p0, descr=valuedescr)
i2 = int_sub(i1, 1)
i3 = int_add(i0, i1)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i2, descr=valuedescr)
jump(i3, p1)
"""
@@ -1141,7 +1141,7 @@
i3 = int_add(i0, i1)
p2 = new_with_vtable(ConstClass(node_vtable2))
setfield_gc(p2, i1, descr=valuedescr)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i2, descr=valuedescr)
setfield_gc(p1, p2, descr=nextdescr)
jump(i3, p1)
@@ -1235,7 +1235,7 @@
def test_virtual_constant_isnull(self):
ops = """
[i0]
- p0 = new_with_vtable(ConstClass(node_vtable))
+ p0 = new_with_vtable(descr=nodesize)
setfield_gc(p0, NULL, descr=nextdescr)
p2 = getfield_gc_r(p0, descr=nextdescr)
i1 = ptr_eq(p2, NULL)
@@ -1254,7 +1254,7 @@
def test_virtual_constant_isnonnull(self):
ops = """
[i0]
- p0 = new_with_vtable(ConstClass(node_vtable))
+ p0 = new_with_vtable(descr=nodesize)
setfield_gc(p0, ConstPtr(myptr), descr=nextdescr)
p2 = getfield_gc_r(p0, descr=nextdescr)
i1 = ptr_eq(p2, NULL)
@@ -1270,7 +1270,7 @@
ops = """
[i0, p1, p3]
i28 = int_add(i0, 1)
- p30 = new_with_vtable(ConstClass(node_vtable))
+ p30 = new_with_vtable(descr=nodesize)
setfield_gc(p30, i28, descr=nextdescr)
setfield_gc(p3, p30, descr=valuedescr)
p45 = getfield_gc_r(p3, descr=valuedescr)
@@ -1281,7 +1281,7 @@
[i0, p1, p3]
i28 = int_add(i0, 1)
i29 = int_add(i0, 2)
- p30 = new_with_vtable(ConstClass(node_vtable))
+ p30 = new_with_vtable(descr=nodesize)
setfield_gc(p30, i28, descr=nextdescr)
setfield_gc(p3, p30, descr=valuedescr)
p46 = same_as(p30) # This same_as should be killed by backend
@@ -1291,7 +1291,7 @@
[i0, p1, p3]
i28 = int_add(i0, 1)
i29 = int_add(i0, 2)
- p30 = new_with_vtable(ConstClass(node_vtable))
+ p30 = new_with_vtable(descr=nodesize)
setfield_gc(p30, i28, descr=nextdescr)
setfield_gc(p3, p30, descr=valuedescr)
jump(i29, p30, p3)
@@ -1301,7 +1301,7 @@
def test_nonvirtual_1(self):
ops = """
[i]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i, descr=valuedescr)
i0 = getfield_gc_i(p1, descr=valuedescr)
i1 = int_add(i0, 1)
@@ -1312,7 +1312,7 @@
expected = """
[i]
i1 = int_add(i, 1)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i, descr=valuedescr)
escape_n(p1)
escape_n(p1)
@@ -1326,7 +1326,7 @@
i0 = getfield_gc_i(p0, descr=valuedescr)
escape_n(p0)
i1 = int_add(i0, i)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i1, descr=valuedescr)
jump(i, p1)
"""
@@ -1339,7 +1339,7 @@
"""
expected = """
[i, i1]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i1, descr=valuedescr)
escape_n(p1)
i2 = int_add(i1, i)
@@ -1350,7 +1350,7 @@
def test_nonvirtual_later(self):
ops = """
[i]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i, descr=valuedescr)
i1 = getfield_gc_i(p1, descr=valuedescr)
escape_n(p1)
@@ -1360,7 +1360,7 @@
"""
expected = """
[i]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i, descr=valuedescr)
escape_n(p1)
i2 = getfield_gc_i(p1, descr=valuedescr)
@@ -1372,7 +1372,7 @@
def test_nonvirtual_write_null_fields_on_force(self):
ops = """
[i]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i, descr=valuedescr)
i1 = getfield_gc_i(p1, descr=valuedescr)
setfield_gc(p1, 0, descr=valuedescr)
@@ -1382,7 +1382,7 @@
"""
expected = """
[i]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, 0, descr=valuedescr)
escape_n(p1)
i2 = getfield_gc_i(p1, descr=valuedescr)
@@ -1393,7 +1393,7 @@
def test_getfield_gc_pure_1(self):
ops = """
[i]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i, descr=valuedescr)
i1 = getfield_gc_pure_i(p1, descr=valuedescr)
jump(i1)
@@ -1471,7 +1471,7 @@
setfield_gc(p31, 0, descr=adescr)
p33 = new_array(0, descr=arraydescr)
setfield_gc(p31, p33, descr=bdescr)
- p35 = new_with_vtable(ConstClass(node_vtable))
+ p35 = new_with_vtable(descr=nodesize)
setfield_gc(p35, p31, descr=valuedescr)
jump(p0, p35)
"""
@@ -1487,7 +1487,7 @@
p18 = getfield_gc_r(ConstPtr(myptr), descr=otherdescr)
guard_isnull(p18) [p0, p8]
p31 = new(descr=ssize)
- p35 = new_with_vtable(ConstClass(node_vtable))
+ p35 = new_with_vtable(descr=nodesize)
setfield_gc(p35, p31, descr=valuedescr)
jump(p0, p35)
"""
@@ -1502,7 +1502,7 @@
[p0, p8, p18, p19]
guard_isnull(p18) [p0, p8]
p31 = new(descr=ssize)
- p35 = new_with_vtable(ConstClass(node_vtable))
+ p35 = new_with_vtable(descr=nodesize)
setfield_gc(p35, p31, descr=valuedescr)
jump(p0, p35, p19, p18)
"""
@@ -1677,7 +1677,7 @@
def test_varray_forced_1(self):
ops = """
[]
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
setfield_gc(p2, 3, descr=valuedescr)
i1 = getfield_gc_i(p2, descr=valuedescr) # i1 = const 3
p1 = new_array(i1, descr=arraydescr)
@@ -2336,7 +2336,7 @@
def test_duplicate_setfield_5(self):
ops = """
[p0, i1]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, i1, descr=valuedescr)
setfield_gc(p0, p1, descr=nextdescr)
setfield_raw(i1, i1, descr=valuedescr) # random op with side-effects
@@ -2398,7 +2398,7 @@
# a virtual, which we try hard to keep virtual
ops = """
[p1, i2, i3]
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
setfield_gc(p1, p2, descr=nextdescr)
guard_true(i3) []
i4 = int_neg(i2)
@@ -2428,7 +2428,7 @@
def test_duplicate_setfield_residual_guard_3(self):
ops = """
[p1, i2, i3]
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
setfield_gc(p2, i2, descr=valuedescr)
setfield_gc(p1, p2, descr=nextdescr)
guard_true(i3) []
@@ -2688,7 +2688,7 @@
def test_duplicate_setfield_virtual(self):
ops = """
[p1, i2, i3, p4]
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
setfield_gc(p2, p4, descr=nextdescr)
setfield_gc(p1, p2, descr=nextdescr)
guard_true(i3) []
@@ -2699,7 +2699,7 @@
[p1, i2, i3, p4]
guard_true(i3) [p1, p4]
i4 = int_neg(i2)
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
setfield_gc(p2, p4, descr=nextdescr)
setfield_gc(p1, p2, descr=nextdescr)
i101 = same_as(i4)
@@ -2708,7 +2708,7 @@
expected = """
[p1, i2, i4, p4, i5]
guard_true(i4) [p1, p4]
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
setfield_gc(p2, p4, descr=nextdescr)
setfield_gc(p1, p2, descr=nextdescr)
jump(p1, i2, i5, p4, i5)
@@ -2722,7 +2722,7 @@
guard_nonnull(p4) []
escape_n(p4)
#
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
p3 = escape_r()
setfield_gc(p2, p3, descr=nextdescr)
jump(i0, p2)
@@ -2772,8 +2772,8 @@
guard_class(p3, ConstClass(node_vtable)) []
setfield_gc(p3, p2, descr=otherdescr)
p1a = new_with_vtable(ConstClass(node_vtable2))
- p2a = new_with_vtable(ConstClass(node_vtable))
- p3a = new_with_vtable(ConstClass(node_vtable))
+ p2a = new_with_vtable(descr=nodesize)
+ p3a = new_with_vtable(descr=nodesize)
escape_n(p3a)
setfield_gc(p1a, p2a, descr=nextdescr)
setfield_gc(p1a, p3a, descr=otherdescr)
@@ -2786,7 +2786,7 @@
guard_class(p2, ConstClass(node_vtable)) []
p3 = getfield_gc_r(p1, descr=otherdescr)
guard_class(p3, ConstClass(node_vtable)) []
- p3a = new_with_vtable(ConstClass(node_vtable))
+ p3a = new_with_vtable(descr=nodesize)
setfield_gc(p3, p2, descr=otherdescr)
escape_n(p3a)
jump(p3a)
@@ -2798,9 +2798,9 @@
# p3 = getfield_gc(p1, descr=otherdescr)# p3a
# setfield_gc(p3, p2, descr=otherdescr) # p3a.other = p2a
# p1a = new_with_vtable(ConstClass(node_vtable2))
- # p2a = new_with_vtable(ConstClass(node_vtable))
- p3anew = new_with_vtable(ConstClass(node_vtable))
- p2 = new_with_vtable(ConstClass(node_vtable))
+ # p2a = new_with_vtable(descr=nodesize)
+ p3anew = new_with_vtable(descr=nodesize)
+ p2 = new_with_vtable(descr=nodesize)
setfield_gc(p3a, p2, descr=otherdescr) # p3a.other = p2a
escape_n(p3anew)
jump(p3anew)
@@ -2820,9 +2820,9 @@
guard_nonnull(12) []
guard_class(p3, ConstClass(node_vtable)) []
p1a = new_with_vtable(ConstClass(node_vtable2))
- p2a = new_with_vtable(ConstClass(node_vtable))
+ p2a = new_with_vtable(descr=nodesize)
setfield_gc(p3, p2a, descr=otherdescr)
- p3a = new_with_vtable(ConstClass(node_vtable))
+ p3a = new_with_vtable(descr=nodesize)
escape_n(p3a)
setfield_gc(p1a, p2a, descr=nextdescr)
setfield_gc(p1a, p3a, descr=otherdescr)
@@ -2836,8 +2836,8 @@
p3 = getfield_gc_r(p1, descr=otherdescr)
guard_class(p3, ConstClass(node_vtable)) []
# p1a = new_with_vtable(ConstClass(node_vtable2))
- p3a = new_with_vtable(ConstClass(node_vtable))
- p2a = new_with_vtable(ConstClass(node_vtable))
+ p3a = new_with_vtable(descr=nodesize)
+ p2a = new_with_vtable(descr=nodesize)
setfield_gc(p3, p2a, descr=otherdescr)
escape_n(p3a)
# setfield_gc(p1a, p2a, descr=nextdescr)
@@ -2846,8 +2846,8 @@
"""
expected = """
[p2, p3]
- p3a = new_with_vtable(ConstClass(node_vtable))
- p2a = new_with_vtable(ConstClass(node_vtable))
+ p3a = new_with_vtable(descr=nodesize)
+ p2a = new_with_vtable(descr=nodesize)
setfield_gc(p3, p2a, descr=otherdescr)
escape_n(p3a)
jump(p2a, p3a)
@@ -2857,7 +2857,7 @@
def test_bug_4(self):
ops = """
[p9]
- p30 = new_with_vtable(ConstClass(node_vtable))
+ p30 = new_with_vtable(descr=nodesize)
setfield_gc(ConstPtr(myptr), p9, descr=nextdescr)
jump(p30)
"""
@@ -2868,7 +2868,7 @@
"""
expected = """
[]
- p30 = new_with_vtable(ConstClass(node_vtable))
+ p30 = new_with_vtable(descr=nodesize)
setfield_gc(ConstPtr(myptr), p30, descr=nextdescr)
jump()
"""
@@ -2906,7 +2906,7 @@
[p1]
guard_isnull(p1) []
#
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
jump(p2)
"""
self.raises(InvalidLoop, self.optimize_loop, ops, "crash!")
@@ -2916,7 +2916,7 @@
[p1]
guard_class(p1, ConstClass(node_vtable2)) []
#
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
escape_n(p2) # prevent it from staying Virtual
jump(p2)
"""
@@ -2928,8 +2928,8 @@
p2 = getfield_gc_r(p1, descr=nextdescr)
guard_isnull(p2) []
#
- p3 = new_with_vtable(ConstClass(node_vtable))
- p4 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
+ p4 = new_with_vtable(descr=nodesize)
setfield_gc(p3, p4, descr=nextdescr)
jump(p3)
"""
@@ -2938,7 +2938,7 @@
def test_invalid_loop_guard_value_of_virtual(self):
ops = """
[p1]
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
guard_value(p2, ConstPtr(myptr)) []
jump(p2)
"""
@@ -3277,7 +3277,7 @@
def test_ovf_guard_in_short_preamble1(self):
ops = """
[p8, p11, i24]
- p26 = new_with_vtable(ConstClass(node_vtable))
+ p26 = new_with_vtable(descr=nodesize)
setfield_gc(p26, i24, descr=adescr)
i34 = getfield_gc_pure_i(p11, descr=valuedescr)
i35 = getfield_gc_pure_i(p26, descr=adescr)
@@ -3303,7 +3303,7 @@
i22 = getfield_gc_i(p16, descr=nextdescr)
i23 = int_mul(i17, i22)
i24 = int_add(i21, i23)
- p26 = new_with_vtable(ConstClass(node_vtable))
+ p26 = new_with_vtable(descr=nodesize)
setfield_gc(p26, i24, descr=adescr)
i28 = int_add(i17, 1)
setfield_gc(p8, i28, descr=nextdescr)
@@ -3312,7 +3312,7 @@
guard_nonnull(p12) []
i36 = int_add_ovf(i34, i35)
guard_no_overflow() []
- p38 = new_with_vtable(ConstClass(node_vtable))
+ p38 = new_with_vtable(descr=nodesize)
setfield_gc(p38, i36, descr=adescr)
jump(p8, p11, p26)
"""
@@ -3937,8 +3937,8 @@
ops = """
[p0, i1]
#
- p1 = new_with_vtable(ConstClass(node_vtable))
- p1b = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
+ p1b = new_with_vtable(descr=nodesize)
setfield_gc(p1b, 252, descr=valuedescr)
setfield_gc(p1, p1b, descr=nextdescr)
#
@@ -3963,8 +3963,8 @@
guard_not_forced() [i1]
#
setfield_gc(p0, NULL, descr=nextdescr)
- p1 = new_with_vtable(ConstClass(node_vtable))
- p1b = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
+ p1b = new_with_vtable(descr=nodesize)
setfield_gc(p1b, 252, descr=valuedescr)
setfield_gc(p1, p1b, descr=nextdescr)
setfield_gc(p2, p1, descr=virtualforceddescr)
@@ -3977,8 +3977,8 @@
ops = """
[p0, i1]
#
- p1 = new_with_vtable(ConstClass(node_vtable))
- p1b = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
+ p1b = new_with_vtable(descr=nodesize)
setfield_gc(p1b, i1, descr=valuedescr)
setfield_gc(p1, p1b, descr=nextdescr)
#
@@ -4003,8 +4003,8 @@
guard_not_forced() [p2, i1]
#
setfield_gc(p0, NULL, descr=nextdescr)
- p1 = new_with_vtable(ConstClass(node_vtable))
- p1b = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
+ p1b = new_with_vtable(descr=nodesize)
setfield_gc(p1b, i1, descr=valuedescr)
setfield_gc(p1, p1b, descr=nextdescr)
setfield_gc(p2, p1, descr=virtualforceddescr)
@@ -4023,8 +4023,8 @@
ops = """
[p0, i1]
#
- p1 = new_with_vtable(ConstClass(node_vtable))
- p1b = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
+ p1b = new_with_vtable(descr=nodesize)
setfield_gc(p1b, i1, descr=valuedescr)
setfield_gc(p1, p1b, descr=nextdescr)
#
@@ -4071,7 +4071,7 @@
def test_vref_virtual_after_finish(self):
ops = """
[i1]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
p2 = virtual_ref(p1, 7)
escape_n(p2)
virtual_ref_finish(p2, p1)
@@ -4086,7 +4086,7 @@
setfield_gc(p2, NULL, descr=virtualforceddescr)
setfield_gc(p2, p3, descr=virtualtokendescr)
escape_n(p2)
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p2, p1, descr=virtualforceddescr)
setfield_gc(p2, NULL, descr=virtualtokendescr)
call_may_force_n(i1, descr=mayforcevirtdescr)
@@ -4820,7 +4820,7 @@
guard_no_overflow() []
i4360p = int_sub_ovf(i4362, 1)
guard_no_overflow() []
- p4364 = new_with_vtable(ConstClass(node_vtable))
+ p4364 = new_with_vtable(descr=nodesize)
setfield_gc(p4364, i4362, descr=valuedescr)
jump(p4364)
"""
@@ -5341,7 +5341,6 @@
self.optimize_loop(ops, expected)
def test_lshift_rshift(self):
- xxx
ops = """
[i1, i2, i2b, i1b]
i3 = int_lshift(i1, i2)
@@ -5945,7 +5944,7 @@
guard_class(p14, 17273920) []
guard_class(p14, 17273920) []
- p75 = new_with_vtable(ConstClass(node_vtable))
+ p75 = new_with_vtable(descr=nodesize)
setfield_gc(p75, p14, descr=inst_w_seq)
setfield_gc(p75, 0, descr=inst_index)
guard_class(p75, ConstClass(node_vtable)) []
@@ -6026,7 +6025,7 @@
ops = """
[p0, p1, pinv]
i1 = getfield_gc_i(pinv, descr=valuedescr)
- p2 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
setfield_gc(p2, i1, descr=nextdescr)
"""
py.test.skip("no test here")
@@ -6215,7 +6214,6 @@
self.optimize_strunicode_loop(ops, expected, expected)
def test_newstr_2(self):
- xxx
ops = """
[i0, i1]
p1 = newstr(2)
@@ -7314,7 +7312,7 @@
[p19, p20, p21]
p1 = getfield_gc_r(p20, descr=valuedescr)
p2 = getfield_gc_r(p1, descr=otherdescr)
- pv = new_with_vtable(ConstClass(node_vtable))
+ pv = new_with_vtable(descr=nodesize)
setfield_gc(pv, p19, descr=valuedescr)
p22 = getfield_gc_r(p19, descr=otherdescr)
guard_value(p19, ConstPtr(myptr)) []
@@ -7435,7 +7433,7 @@
ops = """
[p0]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, p0, descr=valuedescr)
escape_n(p1)
p2 = getfield_gc_pure_r(p1, descr=valuedescr)
@@ -7444,7 +7442,7 @@
"""
expected = """
[p0]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setfield_gc(p1, p0, descr=valuedescr)
escape_n(p1)
escape_n(p0)
@@ -7457,7 +7455,7 @@
[i0, i1]
p0 = escape_r()
i2 = escape_i()
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
setarrayitem_gc(p0, 2, p1, descr=arraydescr)
guard_true(i2) []
setarrayitem_gc(p0, 2, p0, descr=arraydescr)
@@ -7476,7 +7474,7 @@
def test_force_virtualizable_virtual(self):
ops = """
[i0]
- p1 = new_with_vtable(ConstClass(node_vtable))
+ p1 = new_with_vtable(descr=nodesize)
cond_call(1, 123, p1, descr=clear_vable)
jump(i0)
"""
@@ -7630,7 +7628,7 @@
def test_duplicated_virtual(self):
ops = """
[p1, p2]
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
jump(p3, p3)
"""
expected = """
@@ -7642,7 +7640,7 @@
def test_duplicated_aliased_virtual(self):
ops = """
[p1, p2]
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
setfield_gc(p3, p3, descr=nextdescr)
p4 = getfield_gc_r(p3, descr=nextdescr)
jump(p3, p4)
@@ -7658,7 +7656,7 @@
[p1, p2, i0]
i2 = int_lt(i0, 10)
guard_true(i2) [p1, p2]
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
setfield_gc(p3, p3, descr=nextdescr)
p4 = getfield_gc_r(p3, descr=nextdescr)
i1 = int_add(i0, 1)
@@ -7676,8 +7674,8 @@
def test_chained_virtuals(self):
ops = """
[p0, p1]
- p2 = new_with_vtable(ConstClass(node_vtable))
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p2 = new_with_vtable(descr=nodesize)
+ p3 = new_with_vtable(descr=nodesize)
setfield_gc(p2, p3, descr=nextdescr)
jump(p2, p3)
"""
@@ -8000,7 +7998,7 @@
i11 = getfield_gc_pure_i(p8, descr=valuedescr)
i13 = int_add_ovf(i11, 1)
guard_no_overflow() []
- p22 = new_with_vtable(ConstClass(node_vtable))
+ p22 = new_with_vtable(descr=nodesize)
setfield_gc(p22, i13, descr=valuedescr)
setfield_gc(ConstPtr(myptr), p22, descr=adescr)
jump(p22, p22)
@@ -8010,7 +8008,7 @@
call_n(i9, descr=nonwritedescr)
i13 = int_add_ovf(i9, 1)
guard_no_overflow() []
- p22 = new_with_vtable(ConstClass(node_vtable))
+ p22 = new_with_vtable(descr=nodesize)
setfield_gc(p22, i13, descr=valuedescr)
setfield_gc(ConstPtr(myptr), p22, descr=adescr)
jump(p22, i13)
@@ -8293,14 +8291,14 @@
p2 = getfield_gc_r(p1, descr=valuedescr)
guard_nonnull_class(p2, ConstClass(node_vtable)) []
call_n(p2, descr=nonwritedescr)
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
setfield_gc(p1, p3, descr=valuedescr)
jump(p1)
"""
expected = """
[p1, p2]
call_n(p2, descr=nonwritedescr)
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
setfield_gc(p1, p3, descr=valuedescr)
jump(p1, p3)
"""
@@ -8312,14 +8310,14 @@
p2 = getarrayitem_gc_r(p1, 3, descr=arraydescr)
guard_nonnull_class(p2, ConstClass(node_vtable)) []
call_n(p2, descr=nonwritedescr)
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
setarrayitem_gc(p1, 3, p3, descr=arraydescr)
jump(p1)
"""
expected = """
[p1, p2]
call_n(p2, descr=nonwritedescr)
- p3 = new_with_vtable(ConstClass(node_vtable))
+ p3 = new_with_vtable(descr=nodesize)
setarrayitem_gc(p1, 3, p3, descr=arraydescr)
jump(p1, p3)
"""
@@ -8455,9 +8453,9 @@
p71 = getfield_gc_pure_r(p69, descr=quasifielddescr) # inst_code
guard_value(p71, -4247) []
- p106 = new_with_vtable(ConstClass(node_vtable))
+ p106 = new_with_vtable(descr=nodesize)
p108 = new_array(3, descr=arraydescr)
- p110 = new_with_vtable(ConstClass(node_vtable))
+ p110 = new_with_vtable(descr=nodesize)
setfield_gc(p110, ConstPtr(myptr2), descr=otherdescr) # inst_w_function
setarrayitem_gc(p108, 0, p110, descr=arraydescr)
setfield_gc(p106, p108, descr=nextdescr) # inst_storage
diff --git a/rpython/jit/metainterp/resoperation.py b/rpython/jit/metainterp/resoperation.py
--- a/rpython/jit/metainterp/resoperation.py
+++ b/rpython/jit/metainterp/resoperation.py
@@ -82,6 +82,7 @@
return self._forwarded
def set_forwarded(self, forwarded_to):
+ assert forwarded_to is not self
self._forwarded = forwarded_to
# methods implemented by the arity mixins
More information about the pypy-commit
mailing list