Author: Maciej Fijalkowski <fij...@gmail.com> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit