Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r80107:3513381b7af4
Date: 2015-10-11 08:46 +0100
http://bitbucket.org/pypy/pypy/changeset/3513381b7af4/

Log:    backout 2a46aa80547f, it seems to create issues (buildbot,
        pypy-c-jit)

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
@@ -507,7 +507,16 @@
     optimize_GETFIELD_GC_R = optimize_GETFIELD_GC_I
     optimize_GETFIELD_GC_F = optimize_GETFIELD_GC_I
 
-    optimize_GETFIELD_GC_PURE_I = optimize_GETFIELD_GC_I
+    def optimize_GETFIELD_GC_PURE_I(self, op):
+        structinfo = self.ensure_ptr_info_arg0(op)
+        cf = self.field_cache(op.getdescr())
+        field = cf.getfield_from_cache(self, structinfo, op.getdescr())
+        if field is not None:
+            self.make_equal_to(op, field)
+            return
+        # default case: produce the operation
+        self.make_nonnull(op.getarg(0))
+        self.emit_operation(op)
     optimize_GETFIELD_GC_PURE_R = optimize_GETFIELD_GC_PURE_I
     optimize_GETFIELD_GC_PURE_F = optimize_GETFIELD_GC_PURE_I
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to