Author: Spenser Andrew Bauman <saba...@gmail.com> Branch: remove-getfield-pure Changeset: r81518:8322672559df Date: 2016-01-01 03:31 -0500 http://bitbucket.org/pypy/pypy/changeset/8322672559df/
Log: Cleanup logic and include GETFIELDS in list of descriptor based pure operations diff --git a/rpython/jit/metainterp/pyjitpl.py b/rpython/jit/metainterp/pyjitpl.py --- a/rpython/jit/metainterp/pyjitpl.py +++ b/rpython/jit/metainterp/pyjitpl.py @@ -653,7 +653,7 @@ @arguments("box", "descr") def opimpl_getfield_gc_i(self, box, fielddescr): - if fielddescr.is_always_pure() != False and isinstance(box, ConstPtr): + if fielddescr.is_always_pure() and isinstance(box, ConstPtr): # if 'box' is directly a ConstPtr, bypass the heapcache completely resbox = executor.execute(self.metainterp.cpu, self.metainterp, rop.GETFIELD_GC_I, fielddescr, box) @@ -663,7 +663,7 @@ @arguments("box", "descr") def opimpl_getfield_gc_f(self, box, fielddescr): - if fielddescr.is_always_pure() != False and isinstance(box, ConstPtr): + if fielddescr.is_always_pure() and isinstance(box, ConstPtr): # if 'box' is directly a ConstPtr, bypass the heapcache completely resvalue = executor.execute(self.metainterp.cpu, self.metainterp, rop.GETFIELD_GC_F, fielddescr, box) @@ -673,7 +673,7 @@ @arguments("box", "descr") def opimpl_getfield_gc_r(self, box, fielddescr): - if fielddescr.is_always_pure() != False and isinstance(box, ConstPtr): + if fielddescr.is_always_pure() and isinstance(box, ConstPtr): # if 'box' is directly a ConstPtr, bypass the heapcache completely val = executor.execute(self.metainterp.cpu, self.metainterp, rop.GETFIELD_GC_R, fielddescr, box) @@ -2102,6 +2102,9 @@ if (opnum == rop.GETFIELD_RAW_I or opnum == rop.GETFIELD_RAW_R or opnum == rop.GETFIELD_RAW_F or + opnum == rop.GETFIELD_GC_I or + opnum == rop.GETFIELD_GC_R or + opnum == rop.GETFIELD_GC_F or opnum == rop.GETARRAYITEM_RAW_I or opnum == rop.GETARRAYITEM_RAW_F): is_pure = descr.is_always_pure() _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit