[pypy-svn] r64025 - in pypy/branch/pyjitpl5-simplify/pypy: jit/metainterp module/pypyjit rpython rpython/lltypesystem
arigo at codespeak.net
arigo at codespeak.net
Mon Apr 13 14:16:23 CEST 2009
Author: arigo
Date: Mon Apr 13 14:16:21 2009
New Revision: 64025
Modified:
pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/support.py
pypy/branch/pyjitpl5-simplify/pypy/module/pypyjit/policy.py
pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rdict.py
pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rlist.py
pypy/branch/pyjitpl5-simplify/pypy/rpython/rlist.py
Log:
Complete the list of oopspec's, as needed to translate PyPy without the
hack in the policy.
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/support.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/support.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/support.py Mon Apr 13 14:16:21 2009
@@ -2,6 +2,7 @@
from pypy.rpython.ootypesystem import ootype
from pypy.rpython import rlist
from pypy.rpython.lltypesystem import rdict, rstr
+from pypy.rpython.lltypesystem import rlist as lltypesystem_rlist
from pypy.rpython.llinterp import LLInterpreter
from pypy.rpython.extregistry import ExtRegistryEntry
from pypy.translator.simplify import get_funcobj
@@ -121,7 +122,11 @@
_ll_2_list_append = rlist.ll_append
_ll_2_list_extend = rlist.ll_extend
_ll_3_list_insert = rlist.ll_insert_nonneg
+_ll_4_list_setslice = rlist.ll_listsetslice
_ll_2_list_delslice_startonly = rlist.ll_listdelslice_startonly
+_ll_3_list_delslice_startstop = rlist.ll_listdelslice_startstop
+_ll_1_list_list2fixed = lltypesystem_rlist.ll_list2fixed
+_ll_2_list_inplace_mul = rlist.ll_inplace_mul
_ll_2_list_getitem_foldable = _ll_2_list_getitem
_ll_1_list_len_foldable = _ll_1_list_len
@@ -132,6 +137,7 @@
_ll_2_dict_getitem = rdict.ll_dict_getitem
_ll_3_dict_setitem = rdict.ll_dict_setitem
+_ll_2_dict_delitem = rdict.ll_dict_delitem
_ll_3_dict_setdefault = rdict.ll_setdefault
_ll_2_dict_contains = rdict.ll_contains
_ll_3_dict_get = rdict.ll_get
@@ -146,8 +152,6 @@
_ll_2_newdictkvi.need_result_type = True
_ll_1_dict_copy = rdict.ll_copy
_ll_1_dict_clear = rdict.ll_clear
-_ll_4_list_setslice = rlist.ll_listsetslice
-_ll_3_list_delslice_startstop = rlist.ll_listdelslice_startstop
_ll_2_dict_update = rdict.ll_update
_ll_5_string_copy_contents = rstr.copy_string_contents
Modified: pypy/branch/pyjitpl5-simplify/pypy/module/pypyjit/policy.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/module/pypyjit/policy.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/module/pypyjit/policy.py Mon Apr 13 14:16:21 2009
@@ -47,14 +47,12 @@
# string builder interface
if mod == 'pypy.rpython.lltypesystem.rbuilder':
return False
- if (mod == 'pypy.rpython.rlist' or
- mod == 'pypy.rpython.lltypesystem.rdict' or
- mod == 'pypy.rpython.lltypesystem.rlist'):
- # non oopspeced list or dict operations are helpers
- return False
- if func.__name__ == 'll_update':
- return False
- #if mod in forbidden_modules:
+ #if (mod == 'pypy.rpython.rlist' or
+ # mod == 'pypy.rpython.lltypesystem.rdict' or
+ # mod == 'pypy.rpython.lltypesystem.rlist'):
+ # # non oopspeced list or dict operations are helpers
+ # return False
+ #if func.__name__ == 'll_update':
# return False
return super(PyPyJitPolicy, self).look_inside_function(func)
Modified: pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rdict.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rdict.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rdict.py Mon Apr 13 14:16:21 2009
@@ -483,6 +483,7 @@
num_entries = len(d.entries)
if num_entries > DICT_INITSIZE and d.num_items < num_entries / 4:
ll_dict_resize(d)
+ll_dict_delitem.oopspec = 'dict.delitem(d, key)'
def ll_dict_resize(d):
old_entries = d.entries
Modified: pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rlist.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rlist.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/rpython/lltypesystem/rlist.py Mon Apr 13 14:16:21 2009
@@ -387,6 +387,7 @@
for i in range(n):
newitems[i] = olditems[i]
return newitems
+ll_list2fixed.oopspec = 'list.list2fixed(l)'
def ll_list2fixed_exact(l):
return l.items
Modified: pypy/branch/pyjitpl5-simplify/pypy/rpython/rlist.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/rpython/rlist.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/rpython/rlist.py Mon Apr 13 14:16:21 2009
@@ -1011,6 +1011,7 @@
i += 1
j += length
return res
+ll_inplace_mul.oopspec = 'list.inplace_mul(l, factor)'
def ll_mul(RESLIST, l, factor):
More information about the Pypy-commit
mailing list