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