Author: Maciej Fijalkowski <[email protected]>
Branch: gc_no_cleanup_nursery
Changeset: r73291:0038daf24dd5
Date: 2014-09-03 14:33 -0600
http://bitbucket.org/pypy/pypy/changeset/0038daf24dd5/
Log: start working on the JIT - first part is that we don't optimize away
storage of nulls
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -1056,7 +1056,7 @@
"""
self.optimize_loop(ops, expected)
- def test_nonvirtual_dont_write_null_fields_on_force(self):
+ def test_nonvirtual_write_null_fields_on_force(self):
ops = """
[i]
p1 = new_with_vtable(ConstClass(node_vtable))
@@ -1070,6 +1070,7 @@
expected = """
[i]
p1 = new_with_vtable(ConstClass(node_vtable))
+ setfield_gc(p1, 0, descr=valuedescr)
escape(p1)
i2 = getfield_gc(p1, descr=valuedescr)
jump(i2)
@@ -1176,7 +1177,7 @@
"""
self.optimize_loop(ops, expected)
- def test_nonvirtual_array_dont_write_null_fields_on_force(self):
+ def test_nonvirtual_array_write_null_fields_on_force(self):
ops = """
[i1]
p1 = new_array(5, descr=arraydescr)
@@ -1189,6 +1190,7 @@
[i1]
p1 = new_array(5, descr=arraydescr)
setarrayitem_gc(p1, 0, i1, descr=arraydescr)
+ setarrayitem_gc(p1, 1, 0, descr=arraydescr)
escape(p1)
jump(i1)
"""
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
@@ -1397,7 +1397,7 @@
"""
self.optimize_loop(ops, expected)
- def test_nonvirtual_dont_write_null_fields_on_force(self):
+ def test_nonvirtual_write_null_fields_on_force(self):
ops = """
[i]
p1 = new_with_vtable(ConstClass(node_vtable))
@@ -1411,6 +1411,7 @@
expected = """
[i]
p1 = new_with_vtable(ConstClass(node_vtable))
+ setfield_gc(p1, 0, descr=valuedescr)
escape(p1)
i2 = getfield_gc(p1, descr=valuedescr)
jump(i2)
@@ -1608,7 +1609,7 @@
"""
self.optimize_loop(ops, expected)
- def test_nonvirtual_array_dont_write_null_fields_on_force(self):
+ def test_nonvirtual_array_write_null_fields_on_force(self):
ops = """
[i1]
p1 = new_array(5, descr=arraydescr)
@@ -1621,6 +1622,7 @@
[i1]
p1 = new_array(5, descr=arraydescr)
setarrayitem_gc(p1, 0, i1, descr=arraydescr)
+ setarrayitem_gc(p1, 1, 0, descr=arraydescr)
escape(p1)
jump(i1)
"""
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
@@ -158,8 +158,6 @@
iteritems = list(iteritems)
iteritems.sort(key=lambda (x, y): x.sort_key())
for ofs, value in iteritems:
- if value.is_null():
- continue
subbox = value.force_box(optforce)
op = ResOperation(rop.SETFIELD_GC, [box, subbox], None,
descr=ofs)
@@ -310,8 +308,6 @@
for index in range(len(self._items)):
subvalue = self._items[index]
if subvalue is not self.constvalue:
- if subvalue.is_null():
- continue
subbox = subvalue.force_box(optforce)
op = ResOperation(rop.SETARRAYITEM_GC,
[box, ConstInt(index), subbox], None,
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit