[pypy-commit] pypy dynamic-specialized-tuple: copy this stuff to a descr, so caching is done by someone else
fijal
noreply at buildbot.pypy.org
Tue Apr 17 16:21:16 CEST 2012
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: dynamic-specialized-tuple
Changeset: r54463:1011b0cf4476
Date: 2012-04-17 16:20 +0200
http://bitbucket.org/pypy/pypy/changeset/1011b0cf4476/
Log: copy this stuff to a descr, so caching is done by someone else
diff --git a/pypy/jit/backend/llsupport/llmodel.py b/pypy/jit/backend/llsupport/llmodel.py
--- a/pypy/jit/backend/llsupport/llmodel.py
+++ b/pypy/jit/backend/llsupport/llmodel.py
@@ -22,8 +22,6 @@
gcdescr=None):
assert type(opts) is not bool
self.opts = opts
- self.arraydescr_cache = {}
-
from pypy.jit.backend.llsupport.gc import get_ll_description
AbstractCPU.__init__(self)
self.rtyper = rtyper
@@ -293,14 +291,12 @@
extrainfo, ffi_flags)
def copy_and_change_descr_typeinfo_to_ptr(self, descr):
- key = (descr.basesize, descr.itemsize, descr.lendescr)
- try:
- return self.arraydescr_cache[key]
- except KeyError:
- new_descr = ArrayDescr(descr.basesize, descr.itemsize,
- descr.lendescr, FLAG_POINTER)
- self.arraydescr_cache[key] = new_descr
- return new_descr
+ if hasattr(descr, 'typeinfo_to_ptr_descr'):
+ return descr.typeinfo_to_ptr_descr
+ new_descr = ArrayDescr(descr.basesize, descr.itemsize,
+ descr.lendescr, FLAG_POINTER)
+ descr.typeinfo_to_ptr_descr = new_descr
+ return new_descr
def get_overflow_error(self):
ovf_vtable = self.cast_adr_to_int(self._ovf_error_vtable)
More information about the pypy-commit
mailing list